summaryrefslogtreecommitdiff
path: root/lib/plugins/authmysql
diff options
context:
space:
mode:
Diffstat (limited to 'lib/plugins/authmysql')
-rw-r--r--lib/plugins/authmysql/auth.php188
-rw-r--r--lib/plugins/authmysql/lang/es/settings.php27
-rw-r--r--lib/plugins/authmysql/lang/fa/settings.php10
-rw-r--r--lib/plugins/authmysql/lang/hr/settings.php42
-rw-r--r--lib/plugins/authmysql/lang/hu/settings.php4
-rw-r--r--lib/plugins/authmysql/lang/it/settings.php29
-rw-r--r--lib/plugins/authmysql/lang/lv/settings.php10
-rw-r--r--lib/plugins/authmysql/lang/pl/settings.php2
-rw-r--r--lib/plugins/authmysql/lang/tr/settings.php41
-rw-r--r--lib/plugins/authmysql/plugin.info.txt2
10 files changed, 315 insertions, 40 deletions
diff --git a/lib/plugins/authmysql/auth.php b/lib/plugins/authmysql/auth.php
index 1e6e6a4a9..95c62f636 100644
--- a/lib/plugins/authmysql/auth.php
+++ b/lib/plugins/authmysql/auth.php
@@ -21,6 +21,9 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
/** @var int database subrevision */
protected $dbsub = 0;
+ /** @var array cache to avoid re-reading user info data */
+ protected $cacheUserInfo = array();
+
/**
* Constructor
*
@@ -157,10 +160,11 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
$result = $this->_queryDB($sql);
if($result !== false && count($result) == 1) {
- if($this->getConf('forwardClearPass') == 1)
+ if($this->getConf('forwardClearPass') == 1) {
$rc = true;
- else
+ } else {
$rc = auth_verifyPassword($pass, $result[0]['pass']);
+ }
}
$this->_closeDB();
}
@@ -174,16 +178,23 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
* @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
*
* @param string $user user login to get data for
+ * @param bool $requireGroups when true, group membership information should be included in the returned array;
+ * when false, it maybe included, but is not required by the caller
* @return array|bool
*/
- public function getUserData($user) {
+ public function getUserData($user, $requireGroups=true) {
+ if($this->_cacheExists($user, $requireGroups)) {
+ return $this->cacheUserInfo[$user];
+ }
+
if($this->_openDB()) {
$this->_lockTables("READ");
- $info = $this->_getUserInfo($user);
+ $info = $this->_getUserInfo($user, $requireGroups);
$this->_unlockTables();
$this->_closeDB();
- } else
+ } else {
$info = false;
+ }
return $info;
}
@@ -209,12 +220,14 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
global $conf;
if($this->_openDB()) {
- if(($info = $this->_getUserInfo($user)) !== false)
+ if(($info = $this->_getUserInfo($user)) !== false) {
return false; // user already exists
+ }
// set defaultgroup if no groups were given
- if($grps == null)
+ if($grps == null) {
$grps = array($conf['defaultgroup']);
+ }
$this->_lockTables("WRITE");
$pwd = $this->getConf('forwardClearPass') ? $pwd : auth_cryptPassword($pwd);
@@ -234,17 +247,17 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
* The dataset update will be rejected if the user name should be changed
* to an already existing one.
*
- * The password must be provides unencrypted. Pasword cryption is done
+ * The password must be provided unencrypted. Pasword encryption is done
* automatically if configured.
*
- * If one or more groups could't be updated, an error would be set. In
+ * If one or more groups can't be updated, an error will be set. In
* this case the dataset might already be changed and we can't rollback
- * the changes. Transactions would be really usefull here.
+ * the changes. Transactions would be really useful here.
*
* modifyUser() may be called without SQL statements defined that are
* needed to change group membership (for example if only the user profile
- * should be modified). In this case we asure that we don't touch groups
- * even $changes['grps'] is set by mistake.
+ * should be modified). In this case we assure that we don't touch groups
+ * even when $changes['grps'] is set by mistake.
*
* @author Chris Smith <chris@jalakai.co.uk>
* @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
@@ -256,27 +269,30 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
public function modifyUser($user, $changes) {
$rc = false;
- if(!is_array($changes) || !count($changes))
+ if(!is_array($changes) || !count($changes)) {
return true; // nothing to change
+ }
if($this->_openDB()) {
$this->_lockTables("WRITE");
- if(($uid = $this->_getUserID($user))) {
- $rc = $this->_updateUserInfo($changes, $uid);
+ $rc = $this->_updateUserInfo($user, $changes);
- if($rc && isset($changes['grps']) && $this->cando['modGroups']) {
- $groups = $this->_getGroups($user);
- $grpadd = array_diff($changes['grps'], $groups);
- $grpdel = array_diff($groups, $changes['grps']);
+ if($rc && isset($changes['grps']) && $this->cando['modGroups']) {
+ $groups = $this->_getGroups($user);
+ $grpadd = array_diff($changes['grps'], $groups);
+ $grpdel = array_diff($groups, $changes['grps']);
- foreach($grpadd as $group)
- if(($this->_addUserToGroup($user, $group, 1)) == false)
- $rc = false;
+ foreach($grpadd as $group) {
+ if(($this->_addUserToGroup($user, $group, 1)) == false) {
+ $rc = false;
+ }
+ }
- foreach($grpdel as $group)
- if(($this->_delUserFromGroup($user, $group)) == false)
- $rc = false;
+ foreach($grpdel as $group) {
+ if(($this->_delUserFromGroup($user, $group)) == false) {
+ $rc = false;
+ }
}
}
@@ -304,8 +320,9 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
if(is_array($users) && count($users)) {
$this->_lockTables("WRITE");
foreach($users as $user) {
- if($this->_delUser($user))
+ if($this->_delUser($user)) {
$count++;
+ }
}
$this->_unlockTables();
}
@@ -367,9 +384,11 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
$result = $this->_queryDB($sql);
if(!empty($result)) {
- foreach($result as $user)
- if(($info = $this->_getUserInfo($user['user'])))
+ foreach($result as $user) {
+ if(($info = $this->_getUserInfo($user['user']))) {
$out[$user['user']] = $info;
+ }
+ }
}
$this->_unlockTables();
@@ -466,7 +485,10 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
$sql = str_replace('%{user}', $this->_escape($user), $sql);
$sql = str_replace('%{gid}', $this->_escape($gid), $sql);
$sql = str_replace('%{group}', $this->_escape($group), $sql);
- if($this->_modifyDB($sql) !== false) return true;
+ if($this->_modifyDB($sql) !== false) {
+ $this->_flushUserInfoCache($user);
+ return true;
+ }
if($newgroup) { // remove previously created group on error
$sql = str_replace('%{gid}', $this->_escape($gid), $this->getConf('delGroup'));
@@ -501,6 +523,10 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
$sql = str_replace('%{gid}', $this->_escape($gid), $sql);
$sql = str_replace('%{group}', $this->_escape($group), $sql);
$rc = $this->_modifyDB($sql) == 0 ? true : false;
+
+ if ($rc) {
+ $this->_flushUserInfoCache($user);
+ }
}
}
return $rc;
@@ -526,8 +552,9 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
$result = $this->_queryDB($sql);
if($result !== false && count($result)) {
- foreach($result as $row)
+ foreach($result as $row) {
$groups[] = $row['group'];
+ }
}
return $groups;
}
@@ -590,6 +617,7 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
}
if($gid !== false){
+ $this->_flushUserInfoCache($user);
return true;
} else {
/* remove the new user and all group relations if a group can't
@@ -614,7 +642,7 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
*
* @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
*
- * @param string $user user whose id is desired
+ * @param string $user username of the user to be deleted
* @return bool
*/
protected function _delUser($user) {
@@ -626,16 +654,96 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
$sql = str_replace('%{uid}', $this->_escape($uid), $this->getConf('delUser'));
$sql = str_replace('%{user}', $this->_escape($user), $sql);
$this->_modifyDB($sql);
+ $this->_flushUserInfoCache($user);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Flush cached user information
+ *
+ * @author Christopher Smith <chris@jalakai.co.uk>
+ *
+ * @param string $user username of the user whose data is to be removed from the cache
+ * if null, empty the whole cache
+ * @return none
+ */
+ protected function _flushUserInfoCache($user=null) {
+ if (is_null($user)) {
+ $this->cacheUserInfo = array();
+ } else {
+ unset($this->cacheUserInfo[$user]);
+ }
+ }
+
+ /**
+ * Quick lookup to see if a user's information has been cached
+ *
+ * This test does not need a database connection or read lock
+ *
+ * @author Christopher Smith <chris@jalakai.co.uk>
+ *
+ * @param string $user username to be looked up in the cache
+ * @param bool $requireGroups true, if cached info should include group memberships
+ *
+ * @return bool existence of required user information in the cache
+ */
+ protected function _cacheExists($user, $requireGroups=true) {
+ if (isset($this->cacheUserInfo[$user])) {
+ if (!is_array($this->cacheUserInfo[$user])) {
+ return true; // user doesn't exist
+ }
+
+ if (!$requireGroups || isset($this->cacheUserInfo[$user]['grps'])) {
return true;
}
}
+
return false;
}
/**
- * getUserInfo
+ * Get a user's information
+ *
+ * The database connection must already be established for this function to work.
+ *
+ * @author Christopher Smith <chris@jalakai.co.uk>
+ *
+ * @param string $user username of the user whose information is being reterieved
+ * @param bool $requireGroups true if group memberships should be included
+ * @param bool $useCache true if ok to return cached data & to cache returned data
+ *
+ * @return mixed false|array false if the user doesn't exist
+ * array containing user information if user does exist
+ */
+ protected function _getUserInfo($user, $requireGroups=true, $useCache=true) {
+ $info = null;
+
+ if ($useCache && isset($this->cacheUserInfo[$user])) {
+ $info = $this->cacheUserInfo[$user];
+ }
+
+ if (is_null($info)) {
+ $info = $this->_retrieveUserInfo($user);
+ }
+
+ if (($requireGroups == true) && $info && !isset($info['grps'])) {
+ $info['grps'] = $this->_getGroups($user);
+ }
+
+ if ($useCache) {
+ $this->cacheUserInfo[$user] = $info;
+ }
+
+ return $info;
+ }
+
+ /**
+ * retrieveUserInfo
*
- * Gets the data for a specific user The database connection
+ * Gets the data for a specific user. The database connection
* must already be established for this function to work.
* Otherwise it will return 'false'.
*
@@ -644,12 +752,11 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
* @param string $user user's nick to get data for
* @return bool|array false on error, user info on success
*/
- protected function _getUserInfo($user) {
+ protected function _retrieveUserInfo($user) {
$sql = str_replace('%{user}', $this->_escape($user), $this->getConf('getUserInfo'));
$result = $this->_queryDB($sql);
if($result !== false && count($result)) {
$info = $result[0];
- $info['grps'] = $this->_getGroups($user);
return $info;
}
return false;
@@ -666,20 +773,26 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
* The database connection has already to be established for this
* function to work. Otherwise it will return 'false'.
*
- * The password will be crypted if necessary.
+ * The password will be encrypted if necessary.
*
+ * @param string $user user's nick being updated
* @param array $changes array of items to change as pairs of item and value
* @param mixed $uid user id of dataset to change, must be unique in DB
* @return bool true on success or false on error
*
* @author Matthias Grimm <matthiasgrimm@users.sourceforge.net>
*/
- protected function _updateUserInfo($changes, $uid) {
+ protected function _updateUserInfo($user, $changes) {
$sql = $this->getConf('updateUser')." ";
$cnt = 0;
$err = 0;
if($this->dbcon) {
+ $uid = $this->_getUserID($user);
+ if ($uid === false) {
+ return false;
+ }
+
foreach($changes as $item => $value) {
if($item == 'user') {
if(($this->_getUserID($changes['user']))) {
@@ -707,6 +820,7 @@ class auth_plugin_authmysql extends DokuWiki_Auth_Plugin {
$sql .= " ".str_replace('%{uid}', $uid, $this->getConf('UpdateTarget'));
if(get_class($this) == 'auth_mysql') $sql .= " LIMIT 1"; //some PgSQL inheritance comp.
$this->_modifyDB($sql);
+ $this->_flushUserInfoCache($user);
}
return true;
}
diff --git a/lib/plugins/authmysql/lang/es/settings.php b/lib/plugins/authmysql/lang/es/settings.php
index 64d422102..b82620fc6 100644
--- a/lib/plugins/authmysql/lang/es/settings.php
+++ b/lib/plugins/authmysql/lang/es/settings.php
@@ -4,9 +4,36 @@
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Antonio Bueno <atnbueno@gmail.com>
+ * @author Eloy <ej.perezgomez@gmail.com>
+ * @author Antonio Castilla <antoniocastilla@trazoide.com>
*/
$lang['server'] = 'Tu servidor MySQL';
$lang['user'] = 'Nombre de usuario MySQL';
+$lang['password'] = 'Contraseña para el usuario de arriba.';
$lang['database'] = 'Base de datos a usar';
$lang['charset'] = 'Codificación usada en la base de datos';
$lang['debug'] = 'Mostrar información adicional para depuración de errores';
+$lang['forwardClearPass'] = 'Enviar las contraseñas de usuario comotexto plano a las siguientes sentencias de SQL, en lugar de utilizar la opción passcrypt';
+$lang['TablesToLock'] = 'Lista separada por comasde las tablas a bloquear durante operaciones de escritura';
+$lang['checkPass'] = 'Sentencia SQL para verificar las contraseñas';
+$lang['getUserInfo'] = 'Sentencia SQL para obtener información del usuario';
+$lang['getGroups'] = 'Sentencia SQL para obtener la pertenencia a grupos de un usuario';
+$lang['getUsers'] = 'Sentencia SQL para listar todos los usuarios';
+$lang['FilterLogin'] = 'Cláusula SQL para filtrar usuarios por su nombre de usuario';
+$lang['FilterName'] = 'Cláusula SQL para filtrar usuarios por su nombre completo';
+$lang['FilterEmail'] = 'Cláusula SQL para filtrar usuarios por su dirección de correo electrónico';
+$lang['FilterGroup'] = 'Cláusula SQL para filtrar usuarios por su pertenencia a grupos';
+$lang['SortOrder'] = 'Cláusula SQL para ordenar usuarios';
+$lang['addUser'] = 'Sentencia SQL para agregar un nuevo usuario';
+$lang['addGroup'] = 'Sentencia SQL para agregar un nuevo grupo';
+$lang['addUserGroup'] = 'Sentencia SQL para agregar un usuario a un grupo existente';
+$lang['delGroup'] = 'Sentencia SQL para eliminar un grupo';
+$lang['getUserID'] = 'Sentencia SQL para obtener la clave primaria de un usuario';
+$lang['delUser'] = 'Sentencia SQL para eliminar un usuario';
+$lang['delUserRefs'] = 'Sentencia SQL para eliminar un usuario de todos los grupos';
+$lang['updateUser'] = 'Sentencia SQL para actualizar un perfil de usuario';
+$lang['delUserGroup'] = 'Sentencia SQL para eliminar un usuario de un grupo dado';
+$lang['getGroupID'] = 'Sentencia SQL para obtener la clave principal de un grupo dado';
+$lang['debug_o_0'] = 'ninguno';
+$lang['debug_o_1'] = 'sólo errores';
+$lang['debug_o_2'] = 'todas las consultas SQL';
diff --git a/lib/plugins/authmysql/lang/fa/settings.php b/lib/plugins/authmysql/lang/fa/settings.php
new file mode 100644
index 000000000..68ad5ce83
--- /dev/null
+++ b/lib/plugins/authmysql/lang/fa/settings.php
@@ -0,0 +1,10 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Mohamad Mehdi Habibi <habibi.esf@gmail.com>
+ */
+$lang['server'] = 'سرور MySQL';
+$lang['user'] = 'نام کاربری MySQL';
+$lang['database'] = 'پایگاه داده مورد استفاده';
diff --git a/lib/plugins/authmysql/lang/hr/settings.php b/lib/plugins/authmysql/lang/hr/settings.php
new file mode 100644
index 000000000..af9966999
--- /dev/null
+++ b/lib/plugins/authmysql/lang/hr/settings.php
@@ -0,0 +1,42 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Davor Turkalj <turki.bsc@gmail.com>
+ */
+$lang['server'] = 'Vaš MySQL server';
+$lang['user'] = 'MySQL korisničko ime';
+$lang['password'] = 'Lozinka gore navedenog korisnika';
+$lang['database'] = 'Baza koja se koristi';
+$lang['charset'] = 'Znakovni set koji se koristi u bazi';
+$lang['debug'] = 'Prikaz dodatnih debug informacija';
+$lang['forwardClearPass'] = 'Proslijedi korisničku lozinku kao čisti tekst u SQL upitu niže, umjesto korištenja passcrypt opcije';
+$lang['TablesToLock'] = 'Zarezom odvojena lista tabela koje trebaju biti zaključane pri operacijama pisanja';
+$lang['checkPass'] = 'SQL izraz za provjeru lozinki';
+$lang['getUserInfo'] = 'SQL izraz za dohvaćanje informacija o korisniku';
+$lang['getGroups'] = 'SQL izraz za dohvaćanje članstva u grupama';
+$lang['getUsers'] = 'SQL izraz za ispis svih korisnika';
+$lang['FilterLogin'] = 'SQL izraz za izdvajanje korisnika po korisničkom imenu';
+$lang['FilterName'] = 'SQL izraz za izdvajanje korisnika po punom imenu';
+$lang['FilterEmail'] = 'SQL izraz za izdvajanje korisnika po adresi e-pošte';
+$lang['FilterGroup'] = 'SQL izraz za izdvajanje korisnika po članstvu u grupama';
+$lang['SortOrder'] = 'SQL izraz za sortiranje korisnika';
+$lang['addUser'] = 'SQL izraz za dodavanje novih korisnika';
+$lang['addGroup'] = 'SQL izraz za dodavanje novih grupa';
+$lang['addUserGroup'] = 'SQL izraz za dodavanje korisnika u postojeću grupu';
+$lang['delGroup'] = 'SQL izraz za uklanjanje grupe';
+$lang['getUserID'] = 'SQL izraz za dobivanje primarnog ključa korisnika';
+$lang['delUser'] = 'SQL izraz za brisanje korisnika';
+$lang['delUserRefs'] = 'SQL izraz za uklanjanje korisnika iz grupe';
+$lang['updateUser'] = 'SQL izraz za ažuriranje korisničkog profila';
+$lang['UpdateLogin'] = 'UPDATE izraz za ažuriranje korisničkog imena';
+$lang['UpdatePass'] = 'UPDATE izraz za ažuriranje korisničke lozinke';
+$lang['UpdateEmail'] = 'UPDATE izraz za ažuriranje korisničke email adrese';
+$lang['UpdateName'] = 'UPDATE izraz za ažuriranje punog imena korisnika';
+$lang['UpdateTarget'] = 'Limit izraz za identificiranje korisnika pri ažuriranju';
+$lang['delUserGroup'] = 'SQL izraz za uklanjanje korisnika iz zadane grupe';
+$lang['getGroupID'] = 'SQL izraz za dobivanje primarnoga ključa zadane grupe';
+$lang['debug_o_0'] = 'ništa';
+$lang['debug_o_1'] = 'u slučaju greške';
+$lang['debug_o_2'] = 'svi SQL upiti';
diff --git a/lib/plugins/authmysql/lang/hu/settings.php b/lib/plugins/authmysql/lang/hu/settings.php
index 5936203fa..cf7b26bb9 100644
--- a/lib/plugins/authmysql/lang/hu/settings.php
+++ b/lib/plugins/authmysql/lang/hu/settings.php
@@ -6,8 +6,8 @@
* @author Marton Sebok <sebokmarton@gmail.com>
* @author Marina Vladi <deldadam@gmail.com>
*/
-$lang['server'] = 'MySQL-szerver';
-$lang['user'] = 'MySQL felhasználónév';
+$lang['server'] = 'MySQL-kiszolgáló';
+$lang['user'] = 'MySQL-felhasználónév';
$lang['password'] = 'Fenti felhasználó jelszava';
$lang['database'] = 'Adatbázis';
$lang['charset'] = 'Az adatbázisban használt karakterkészlet';
diff --git a/lib/plugins/authmysql/lang/it/settings.php b/lib/plugins/authmysql/lang/it/settings.php
index e493ec7e9..10c0de96f 100644
--- a/lib/plugins/authmysql/lang/it/settings.php
+++ b/lib/plugins/authmysql/lang/it/settings.php
@@ -4,5 +4,34 @@
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Claudio Lanconelli <lancos@libero.it>
+ * @author Mirko <malisan.mirko@gmail.com>
+ * @author Francesco <francesco.cavalli@hotmail.com>
*/
+$lang['server'] = 'Il tuo server MySQL';
+$lang['user'] = 'User name di MySQL';
+$lang['database'] = 'Database da usare';
+$lang['charset'] = 'Set di caratteri usato nel database';
$lang['debug'] = 'Mostra ulteriori informazioni di debug';
+$lang['TablesToLock'] = 'Lista, separata da virgola, delle tabelle che devono essere bloccate in scrittura';
+$lang['checkPass'] = 'Istruzione SQL per il controllo password';
+$lang['getUserInfo'] = 'Istruzione SQL per recuperare le informazioni utente';
+$lang['getUsers'] = 'Istruzione SQL per listare tutti gli utenti';
+$lang['FilterLogin'] = 'Istruzione SQL per per filtrare gli utenti in funzione del "login name"';
+$lang['SortOrder'] = 'Istruzione SQL per ordinare gli utenti';
+$lang['addUser'] = 'Istruzione SQL per aggiungere un nuovo utente';
+$lang['addGroup'] = 'Istruzione SQL per aggiungere un nuovo gruppo';
+$lang['addUserGroup'] = 'Istruzione SQL per aggiungere un utente ad un gruppo esistente';
+$lang['delGroup'] = 'Istruzione SQL per imuovere un gruppo';
+$lang['getUserID'] = 'Istruzione SQL per recuperare la primary key di un utente';
+$lang['delUser'] = 'Istruzione SQL per cancellare un utente';
+$lang['delUserRefs'] = 'Istruzione SQL per rimuovere un utente da tutti i gruppi';
+$lang['updateUser'] = 'Istruzione SQL per aggiornare il profilo utente';
+$lang['UpdateLogin'] = 'Clausola per aggiornare il "login name" dell\'utente';
+$lang['UpdatePass'] = 'Clausola per aggiornare la password utente';
+$lang['UpdateEmail'] = 'Clausola per aggiornare l\'email utente';
+$lang['UpdateName'] = 'Clausola per aggiornare il nome completo';
+$lang['delUserGroup'] = 'Istruzione SQL per rimuovere un utente da un dato gruppo';
+$lang['getGroupID'] = 'Istruzione SQL per avere la primary key di un dato gruppo';
+$lang['debug_o_0'] = 'Nulla';
+$lang['debug_o_1'] = 'Solo in errore';
+$lang['debug_o_2'] = 'Tutte le query SQL';
diff --git a/lib/plugins/authmysql/lang/lv/settings.php b/lib/plugins/authmysql/lang/lv/settings.php
new file mode 100644
index 000000000..8550363c9
--- /dev/null
+++ b/lib/plugins/authmysql/lang/lv/settings.php
@@ -0,0 +1,10 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author Aivars Miška <allefm@gmail.com>
+ */
+$lang['user'] = 'MySQL lietotāja vārds';
+$lang['password'] = 'Lietotāja parole';
+$lang['delUser'] = 'SQL pieprasījums lietotāja dzēšanai';
diff --git a/lib/plugins/authmysql/lang/pl/settings.php b/lib/plugins/authmysql/lang/pl/settings.php
index 88cbd5d6f..9dc798ee0 100644
--- a/lib/plugins/authmysql/lang/pl/settings.php
+++ b/lib/plugins/authmysql/lang/pl/settings.php
@@ -4,6 +4,7 @@
* @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
*
* @author Paweł Jan Czochański <czochanski@gmail.com>
+ * @author Mati <mackosa@wp.pl>
*/
$lang['server'] = 'Twój server MySQL';
$lang['user'] = 'Nazwa użytkownika MySQL';
@@ -12,3 +13,4 @@ $lang['database'] = 'Używana baza danych';
$lang['charset'] = 'Zestaw znaków uzyty w bazie danych';
$lang['debug'] = 'Wyświetlaj dodatkowe informacje do debugowania.';
$lang['checkPass'] = 'Zapytanie SQL wykorzystywane do sprawdzania haseł.';
+$lang['debug_o_2'] = 'wszystkie zapytania SQL';
diff --git a/lib/plugins/authmysql/lang/tr/settings.php b/lib/plugins/authmysql/lang/tr/settings.php
new file mode 100644
index 000000000..ca6a7c6ad
--- /dev/null
+++ b/lib/plugins/authmysql/lang/tr/settings.php
@@ -0,0 +1,41 @@
+<?php
+
+/**
+ * @license GPL 2 (http://www.gnu.org/licenses/gpl.html)
+ *
+ * @author ilker rifat kapaç <irifat@gmail.com>
+ * @author İlker R. Kapaç <irifat@gmail.com>
+ */
+$lang['server'] = 'Sizin MySQL sunucunuz';
+$lang['user'] = 'MySQL kullanıcısının adı';
+$lang['password'] = 'Üstteki kullanıcı için şifre';
+$lang['database'] = 'Kullanılacak veritabanı';
+$lang['charset'] = 'Veritabanında kullanılacak karakter seti';
+$lang['debug'] = 'İlave hata ayıklama bilgisini görüntüle';
+$lang['checkPass'] = 'Şifreleri kontrol eden SQL ifadesi';
+$lang['getUserInfo'] = 'Kullanıcı bilgilerini getiren SQL ifadesi';
+$lang['getGroups'] = 'Kullanıcının grup üyeliklerini getiren SQL ifadesi';
+$lang['getUsers'] = 'Tüm kullanıcıları listeleyen SQL ifadesi';
+$lang['FilterLogin'] = 'Kullanıcıları giriş yaptıkları isimlere göre süzmek için SQL şartı';
+$lang['FilterName'] = 'Kullanıcıları tam isimlerine göre süzmek için SQL şartı';
+$lang['FilterEmail'] = 'Kullanıcıları e-posta adreslerine göre süzmek için SQL şartı';
+$lang['FilterGroup'] = 'Kullanıcıları üye oldukları grup isimlerine göre süzmek için SQL şartı';
+$lang['SortOrder'] = 'Kullanıcıları sıralamak için SQL şartı';
+$lang['addUser'] = 'Yeni bir kullanıcı ekleyen SQL ifadesi';
+$lang['addGroup'] = 'Yeni bir grup ekleyen SQL ifadesi';
+$lang['addUserGroup'] = 'Varolan gruba yeni bir kullanıcı ekleyen SQL ifadesi';
+$lang['delGroup'] = 'Grup silen SQL ifadesi';
+$lang['getUserID'] = 'Kullanıcının birincil anahtarını getiren SQL ifadesi';
+$lang['delUser'] = 'Kullanıcı silen SQL ifadesi';
+$lang['delUserRefs'] = 'Kullanıcıyı tüm gruplardan çıkartan SQL ifadesi';
+$lang['updateUser'] = 'Kullanıcı profilini güncelleyen SQL ifadesi';
+$lang['UpdateLogin'] = 'Kullanıcının giriş yaptığı ismi güncelleyen, güncelleme şartı';
+$lang['UpdatePass'] = 'Kullanıcının şifresini güncelleyen, güncelleme şartı';
+$lang['UpdateEmail'] = 'Kullanıcının e-posta adresini güncelleyen, güncelleme şartı';
+$lang['UpdateName'] = 'Kullanıcının tam adını güncelleyen, güncelleme şartı';
+$lang['UpdateTarget'] = 'Güncelleme esnasında kullanıcıyı belirleyen, sınır şartı';
+$lang['delUserGroup'] = 'Kullanıcıyı verilen gruptan silen SQL ifadesi';
+$lang['getGroupID'] = 'Verilen grubun birincil anahtarını getiren SQL ifadesi';
+$lang['debug_o_0'] = 'hiçbiri';
+$lang['debug_o_1'] = 'sadece hata olduğunda';
+$lang['debug_o_2'] = 'tüm SQL sorguları';
diff --git a/lib/plugins/authmysql/plugin.info.txt b/lib/plugins/authmysql/plugin.info.txt
index 3e889d11e..fa00fccf4 100644
--- a/lib/plugins/authmysql/plugin.info.txt
+++ b/lib/plugins/authmysql/plugin.info.txt
@@ -1,7 +1,7 @@
base authmysql
author Andreas Gohr
email andi@splitbrain.org
-date 2013-02-16
+date 2014-02-15
name MYSQL Auth Plugin
desc Provides user authentication against a MySQL database
url http://www.dokuwiki.org/plugin:authmysql