diff options
author | Guy Brand <gb@unistra.fr> | 2020-06-01 12:54:55 +0200 |
---|---|---|
committer | Guy Brand <gb@unistra.fr> | 2020-06-01 12:54:55 +0200 |
commit | deeaa689327c15fc7e9395ba329a6f2513c654ec (patch) | |
tree | c783eea9ed5410eeece153e397a465046856f7d6 /lib/plugins/authad | |
parent | 504b44a4c7fde212be653fc640f1685318449287 (diff) | |
parent | bf713fe248da134f13395558651321459abc717e (diff) | |
download | dokuwiki-deeaa689327c15fc7e9395ba329a6f2513c654ec.tar.gz dokuwiki-deeaa689327c15fc7e9395ba329a6f2513c654ec.zip |
Merge master into stable
Diffstat (limited to 'lib/plugins/authad')
38 files changed, 404 insertions, 218 deletions
diff --git a/lib/plugins/authad/action.php b/lib/plugins/authad/action.php index bc0f90c7e..a9fc01c1b 100644 --- a/lib/plugins/authad/action.php +++ b/lib/plugins/authad/action.php @@ -6,22 +6,20 @@ * @author Andreas Gohr <gohr@cosmocode.de> */ -// must be run within Dokuwiki -if(!defined('DOKU_INC')) die(); - /** * Class action_plugin_addomain */ -class action_plugin_authad extends DokuWiki_Action_Plugin { +class action_plugin_authad extends DokuWiki_Action_Plugin +{ /** * Registers a callback function for a given event */ - public function register(Doku_Event_Handler $controller) { - - $controller->register_hook('AUTH_LOGIN_CHECK', 'BEFORE', $this, 'handle_auth_login_check'); - $controller->register_hook('HTML_LOGINFORM_OUTPUT', 'BEFORE', $this, 'handle_html_loginform_output'); + public function register(Doku_Event_Handler $controller) + { + $controller->register_hook('AUTH_LOGIN_CHECK', 'BEFORE', $this, 'handleAuthLoginCheck'); + $controller->register_hook('HTML_LOGINFORM_OUTPUT', 'BEFORE', $this, 'handleHtmlLoginformOutput'); } /** @@ -30,17 +28,18 @@ class action_plugin_authad extends DokuWiki_Action_Plugin { * @param Doku_Event $event * @param array $param */ - public function handle_auth_login_check(Doku_Event &$event, $param) { + public function handleAuthLoginCheck(Doku_Event $event, $param) + { global $INPUT; /** @var auth_plugin_authad $auth */ global $auth; - if(!is_a($auth, 'auth_plugin_authad')) return; // AD not even used + if (!is_a($auth, 'auth_plugin_authad')) return; // AD not even used - if($INPUT->str('dom')) { + if ($INPUT->str('dom')) { $usr = $auth->cleanUser($event->data['user']); - $dom = $auth->_userDomain($usr); - if(!$dom) { + $dom = $auth->getUserDomain($usr); + if (!$dom) { $usr = "$usr@".$INPUT->str('dom'); } $INPUT->post->set('u', $usr); @@ -54,26 +53,27 @@ class action_plugin_authad extends DokuWiki_Action_Plugin { * @param Doku_Event $event * @param array $param */ - public function handle_html_loginform_output(Doku_Event &$event, $param) { + public function handleHtmlLoginformOutput(Doku_Event $event, $param) + { global $INPUT; /** @var auth_plugin_authad $auth */ global $auth; - if(!is_a($auth, 'auth_plugin_authad')) return; // AD not even used - $domains = $auth->_getConfiguredDomains(); - if(count($domains) <= 1) return; // no choice at all + if (!is_a($auth, 'auth_plugin_authad')) return; // AD not even used + $domains = $auth->getConfiguredDomains(); + if (count($domains) <= 1) return; // no choice at all /** @var Doku_Form $form */ $form =& $event->data; // any default? $dom = ''; - if($INPUT->has('u')) { + if ($INPUT->has('u')) { $usr = $auth->cleanUser($INPUT->str('u')); - $dom = $auth->_userDomain($usr); + $dom = $auth->getUserDomain($usr); // update user field value - if($dom) { - $usr = $auth->_userName($usr); + if ($dom) { + $usr = $auth->getUserName($usr); $pos = $form->findElementByAttribute('name', 'u'); $ele =& $form->getElementAt($pos); $ele['value'] = $usr; @@ -85,7 +85,6 @@ class action_plugin_authad extends DokuWiki_Action_Plugin { $pos = $form->findElementByAttribute('name', 'p'); $form->insertElement($pos + 1, $element); } - } -// vim:ts=4:sw=4:et:
\ No newline at end of file +// vim:ts=4:sw=4:et: diff --git a/lib/plugins/authad/auth.php b/lib/plugins/authad/auth.php index 50f708456..27a6b229e 100644 --- a/lib/plugins/authad/auth.php +++ b/lib/plugins/authad/auth.php @@ -1,9 +1,4 @@ <?php -// must be run within Dokuwiki -if(!defined('DOKU_INC')) die(); - -require_once(DOKU_PLUGIN.'authad/adLDAP/adLDAP.php'); -require_once(DOKU_PLUGIN.'authad/adLDAP/classes/adLDAPUtils.php'); /** * Active Directory authentication backend for DokuWiki @@ -41,7 +36,8 @@ require_once(DOKU_PLUGIN.'authad/adLDAP/classes/adLDAPUtils.php'); * @author Andreas Gohr <andi@splitbrain.org> * @author Jan Schumann <js@schumann-it.com> */ -class auth_plugin_authad extends DokuWiki_Auth_Plugin { +class auth_plugin_authad extends DokuWiki_Auth_Plugin +{ /** * @var array hold connection data for a specific AD domain @@ -66,52 +62,53 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { /** * @var array filter patterns for listing users */ - protected $_pattern = array(); - - protected $_actualstart = 0; + protected $pattern = array(); - protected $_grpsusers = array(); + protected $grpsusers = array(); /** * Constructor */ - public function __construct() { + public function __construct() + { global $INPUT; parent::__construct(); + require_once(DOKU_PLUGIN.'authad/adLDAP/adLDAP.php'); + require_once(DOKU_PLUGIN.'authad/adLDAP/classes/adLDAPUtils.php'); + // we load the config early to modify it a bit here $this->loadConfig(); // additional information fields - if(isset($this->conf['additional'])) { + if (isset($this->conf['additional'])) { $this->conf['additional'] = str_replace(' ', '', $this->conf['additional']); $this->conf['additional'] = explode(',', $this->conf['additional']); } else $this->conf['additional'] = array(); // ldap extension is needed - if(!function_exists('ldap_connect')) { - if($this->conf['debug']) + if (!function_exists('ldap_connect')) { + if ($this->conf['debug']) msg("AD Auth: PHP LDAP extension not found.", -1); $this->success = false; return; } // Prepare SSO - if(!empty($_SERVER['REMOTE_USER'])) { - + if (!empty($_SERVER['REMOTE_USER'])) { // make sure the right encoding is used - if($this->getConf('sso_charset')) { + if ($this->getConf('sso_charset')) { $_SERVER['REMOTE_USER'] = iconv($this->getConf('sso_charset'), 'UTF-8', $_SERVER['REMOTE_USER']); - } elseif(!utf8_check($_SERVER['REMOTE_USER'])) { + } elseif (!\dokuwiki\Utf8\Clean::isUtf8($_SERVER['REMOTE_USER'])) { $_SERVER['REMOTE_USER'] = utf8_encode($_SERVER['REMOTE_USER']); } // trust the incoming user - if($this->conf['sso']) { + if ($this->conf['sso']) { $_SERVER['REMOTE_USER'] = $this->cleanUser($_SERVER['REMOTE_USER']); // we need to simulate a login - if(empty($_COOKIE[DOKU_COOKIE])) { + if (empty($_COOKIE[DOKU_COOKIE])) { $INPUT->set('u', $_SERVER['REMOTE_USER']); $INPUT->set('p', 'sso_only'); } @@ -130,10 +127,11 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * @param string $cap * @return bool */ - public function canDo($cap) { + public function canDo($cap) + { //capabilities depend on config, which may change depending on domain - $domain = $this->_userDomain($_SERVER['REMOTE_USER']); - $this->_loadServerConfig($domain); + $domain = $this->getUserDomain($_SERVER['REMOTE_USER']); + $this->loadServerConfig($domain); return parent::canDo($cap); } @@ -149,16 +147,22 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * @param string $pass * @return bool */ - public function checkPass($user, $pass) { - if($_SERVER['REMOTE_USER'] && + public function checkPass($user, $pass) + { + if ($_SERVER['REMOTE_USER'] && $_SERVER['REMOTE_USER'] == $user && $this->conf['sso'] ) return true; - $adldap = $this->_adldap($this->_userDomain($user)); - if(!$adldap) return false; + $adldap = $this->initAdLdap($this->getUserDomain($user)); + if (!$adldap) return false; - return $adldap->authenticate($this->_userName($user), $pass); + try { + return $adldap->authenticate($this->getUserName($user), $pass); + } catch (adLDAPException $e) { + // shouldn't really happen + return false; + } } /** @@ -186,14 +190,15 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * @param bool $requireGroups (optional) - ignored, groups are always supplied by this plugin * @return array */ - public function getUserData($user, $requireGroups=true) { + public function getUserData($user, $requireGroups = true) + { global $conf; global $lang; global $ID; - $adldap = $this->_adldap($this->_userDomain($user)); - if(!$adldap) return false; + $adldap = $this->initAdLdap($this->getUserDomain($user)); + if (!$adldap) return array(); - if($user == '') return array(); + if ($user == '') return array(); $fields = array('mail', 'displayname', 'samaccountname', 'lastpwd', 'pwdlastset', 'useraccountcontrol'); @@ -203,8 +208,8 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { $fields = array_filter($fields); //get info for given user - $result = $adldap->user()->info($this->_userName($user), $fields); - if($result == false){ + $result = $adldap->user()->info($this->getUserName($user), $fields); + if ($result == false) { return array(); } @@ -220,52 +225,56 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { $info['expires'] = !($result[0]['useraccountcontrol'][0] & 0x10000); //ADS_UF_DONT_EXPIRE_PASSWD // additional information - foreach($this->conf['additional'] as $field) { - if(isset($result[0][strtolower($field)])) { + foreach ($this->conf['additional'] as $field) { + if (isset($result[0][strtolower($field)])) { $info[$field] = $result[0][strtolower($field)][0]; } } // handle ActiveDirectory memberOf - $info['grps'] = $adldap->user()->groups($this->_userName($user),(bool) $this->opts['recursive_groups']); + $info['grps'] = $adldap->user()->groups($this->getUserName($user), (bool) $this->opts['recursive_groups']); - if(is_array($info['grps'])) { - foreach($info['grps'] as $ndx => $group) { + if (is_array($info['grps'])) { + foreach ($info['grps'] as $ndx => $group) { $info['grps'][$ndx] = $this->cleanGroup($group); } } // always add the default group to the list of groups - if(!is_array($info['grps']) || !in_array($conf['defaultgroup'], $info['grps'])) { + if (!is_array($info['grps']) || !in_array($conf['defaultgroup'], $info['grps'])) { $info['grps'][] = $conf['defaultgroup']; } // add the user's domain to the groups - $domain = $this->_userDomain($user); - if($domain && !in_array("domain-$domain", (array) $info['grps'])) { + $domain = $this->getUserDomain($user); + if ($domain && !in_array("domain-$domain", (array) $info['grps'])) { $info['grps'][] = $this->cleanGroup("domain-$domain"); } // check expiry time - if($info['expires'] && $this->conf['expirywarn']){ - $expiry = $adldap->user()->passwordExpiry($user); - if(is_array($expiry)){ - $info['expiresat'] = $expiry['expiryts']; - $info['expiresin'] = round(($info['expiresat'] - time())/(24*60*60)); - - // if this is the current user, warn him (once per request only) - if(($_SERVER['REMOTE_USER'] == $user) && - ($info['expiresin'] <= $this->conf['expirywarn']) && - !$this->msgshown - ) { - $msg = sprintf($this->getLang('authpwdexpire'), $info['expiresin']); - if($this->canDo('modPass')) { - $url = wl($ID, array('do'=> 'profile')); - $msg .= ' <a href="'.$url.'">'.$lang['btn_profile'].'</a>'; + if ($info['expires'] && $this->conf['expirywarn']) { + try { + $expiry = $adldap->user()->passwordExpiry($user); + if (is_array($expiry)) { + $info['expiresat'] = $expiry['expiryts']; + $info['expiresin'] = round(($info['expiresat'] - time())/(24*60*60)); + + // if this is the current user, warn him (once per request only) + if (($_SERVER['REMOTE_USER'] == $user) && + ($info['expiresin'] <= $this->conf['expirywarn']) && + !$this->msgshown + ) { + $msg = sprintf($this->getLang('authpwdexpire'), $info['expiresin']); + if ($this->canDo('modPass')) { + $url = wl($ID, array('do'=> 'profile')); + $msg .= ' <a href="'.$url.'">'.$lang['btn_profile'].'</a>'; + } + msg($msg); + $this->msgshown = true; } - msg($msg); - $this->msgshown = true; } + } catch (adLDAPException $e) { + // ignore. should usually not happen } } @@ -281,11 +290,12 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * @param string $group * @return string */ - public function cleanGroup($group) { + public function cleanGroup($group) + { $group = str_replace('\\', '', $group); $group = str_replace('#', '', $group); $group = preg_replace('[\s]', '_', $group); - $group = utf8_strtolower(trim($group)); + $group = \dokuwiki\Utf8\PhpString::strtolower(trim($group)); return $group; } @@ -298,27 +308,28 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * @param string $user * @return string */ - public function cleanUser($user) { + public function cleanUser($user) + { $domain = ''; // get NTLM or Kerberos domain part list($dom, $user) = explode('\\', $user, 2); - if(!$user) $user = $dom; - if($dom) $domain = $dom; + if (!$user) $user = $dom; + if ($dom) $domain = $dom; list($user, $dom) = explode('@', $user, 2); - if($dom) $domain = $dom; + if ($dom) $domain = $dom; // clean up both - $domain = utf8_strtolower(trim($domain)); - $user = utf8_strtolower(trim($user)); + $domain = \dokuwiki\Utf8\PhpString::strtolower(trim($domain)); + $user = \dokuwiki\Utf8\PhpString::strtolower(trim($user)); - // is this a known, valid domain? if not discard - if(!is_array($this->conf[$domain])) { + // is this a known, valid domain or do we work without account suffix? if not discard + if (!is_array($this->conf[$domain]) && $this->conf['account_suffix'] !== '') { $domain = ''; } // reattach domain - if($domain) $user = "$user@$domain"; + if ($domain) $user = "$user@$domain"; return $user; } @@ -327,7 +338,8 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * * @return bool */ - public function isCaseSensitive() { + public function isCaseSensitive() + { return false; } @@ -337,11 +349,12 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * @param array $filter * @return string */ - protected function _constructSearchString($filter){ - if (!$filter){ + protected function constructSearchString($filter) + { + if (!$filter) { return '*'; } - $adldapUtils = new adLDAPUtils($this->_adldap(null)); + $adldapUtils = new adLDAPUtils($this->initAdLdap(null)); $result = '*'; if (isset($filter['name'])) { $result .= ')(displayname=*' . $adldapUtils->ldapSlashes($filter['name']) . '*'; @@ -366,32 +379,41 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * @param array $filter $filter array of field/pattern pairs, empty array for no filter * @return int number of users */ - public function getUserCount($filter = array()) { - $adldap = $this->_adldap(null); - if(!$adldap) { + public function getUserCount($filter = array()) + { + $adldap = $this->initAdLdap(null); + if (!$adldap) { dbglog("authad/auth.php getUserCount(): _adldap not set."); return -1; } if ($filter == array()) { $result = $adldap->user()->all(); } else { - $searchString = $this->_constructSearchString($filter); + $searchString = $this->constructSearchString($filter); $result = $adldap->user()->all(false, $searchString); if (isset($filter['grps'])) { $this->users = array_fill_keys($result, false); + /** @var admin_plugin_usermanager $usermanager */ $usermanager = plugin_load("admin", "usermanager", false); $usermanager->setLastdisabled(true); - if (!isset($this->_grpsusers[$this->_filterToString($filter)])){ - $this->_fillGroupUserArray($filter,$usermanager->getStart() + 3*$usermanager->getPagesize()); - } elseif (count($this->_grpsusers[$this->_filterToString($filter)]) < $usermanager->getStart() + 3*$usermanager->getPagesize()) { - $this->_fillGroupUserArray($filter,$usermanager->getStart() + 3*$usermanager->getPagesize() - count($this->_grpsusers[$this->_filterToString($filter)])); + if (!isset($this->grpsusers[$this->filterToString($filter)])) { + $this->fillGroupUserArray($filter, $usermanager->getStart() + 3*$usermanager->getPagesize()); + } elseif (count($this->grpsusers[$this->filterToString($filter)]) < + $usermanager->getStart() + 3*$usermanager->getPagesize() + ) { + $this->fillGroupUserArray( + $filter, + $usermanager->getStart() + + 3*$usermanager->getPagesize() - + count($this->grpsusers[$this->filterToString($filter)]) + ); } - $result = $this->_grpsusers[$this->_filterToString($filter)]; + $result = $this->grpsusers[$this->filterToString($filter)]; } else { + /** @var admin_plugin_usermanager $usermanager */ $usermanager = plugin_load("admin", "usermanager", false); $usermanager->setLastdisabled(false); } - } if (!$result) { @@ -407,7 +429,8 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * @param array $filter * @return string */ - protected function _filterToString ($filter) { + protected function filterToString($filter) + { $result = ''; if (isset($filter['user'])) { $result .= 'user-' . $filter['user']; @@ -433,24 +456,30 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * @param int $numberOfAdds additional number of users requested * @return int number of Users actually add to Array */ - protected function _fillGroupUserArray($filter, $numberOfAdds){ - $this->_grpsusers[$this->_filterToString($filter)]; - $i = 0; + protected function fillGroupUserArray($filter, $numberOfAdds) + { + if (isset($this->grpsusers[$this->filterToString($filter)])) { + $actualstart = count($this->grpsusers[$this->filterToString($filter)]); + } else { + $this->grpsusers[$this->filterToString($filter)] = []; + $actualstart = 0; + } + + $i=0; $count = 0; - $this->_constructPattern($filter); + $this->constructPattern($filter); foreach ($this->users as $user => &$info) { - if($i++ < $this->_actualstart) { + if ($i++ < $actualstart) { continue; } - if($info === false) { + if ($info === false) { $info = $this->getUserData($user); } - if($this->_filter($user, $info)) { - $this->_grpsusers[$this->_filterToString($filter)][$user] = $info; - if(($numberOfAdds > 0) && (++$count >= $numberOfAdds)) break; + if ($this->filter($user, $info)) { + $this->grpsusers[$this->filterToString($filter)][$user] = $info; + if (($numberOfAdds > 0) && (++$count >= $numberOfAdds)) break; } } - $this->_actualstart = $i; return $count; } @@ -464,50 +493,61 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * @param array $filter array of field/pattern pairs, null for no filter * @return array userinfo (refer getUserData for internal userinfo details) */ - public function retrieveUsers($start = 0, $limit = 0, $filter = array()) { - $adldap = $this->_adldap(null); - if(!$adldap) return false; + public function retrieveUsers($start = 0, $limit = 0, $filter = array()) + { + $adldap = $this->initAdLdap(null); + if (!$adldap) return array(); - if(!$this->users) { + //if (!$this->users) { //get info for given user - $result = $adldap->user()->all(false, $this->_constructSearchString($filter)); + $result = $adldap->user()->all(false, $this->constructSearchString($filter)); if (!$result) return array(); $this->users = array_fill_keys($result, false); - } + //} $i = 0; $count = 0; $result = array(); if (!isset($filter['grps'])) { + /** @var admin_plugin_usermanager $usermanager */ $usermanager = plugin_load("admin", "usermanager", false); $usermanager->setLastdisabled(false); - $this->_constructPattern($filter); - foreach($this->users as $user => &$info) { - if($i++ < $start) { + $this->constructPattern($filter); + foreach ($this->users as $user => &$info) { + if ($i++ < $start) { continue; } - if($info === false) { + if ($info === false) { $info = $this->getUserData($user); } $result[$user] = $info; - if(($limit > 0) && (++$count >= $limit)) break; + if (($limit > 0) && (++$count >= $limit)) break; } } else { + /** @var admin_plugin_usermanager $usermanager */ $usermanager = plugin_load("admin", "usermanager", false); $usermanager->setLastdisabled(true); - if (!isset($this->_grpsusers[$this->_filterToString($filter)]) || count($this->_grpsusers[$this->_filterToString($filter)]) < ($start+$limit)) { - $this->_fillGroupUserArray($filter,$start+$limit - count($this->_grpsusers[$this->_filterToString($filter)]) +1); + if (!isset($this->grpsusers[$this->filterToString($filter)]) || + count($this->grpsusers[$this->filterToString($filter)]) < ($start+$limit) + ) { + if(!isset($this->grpsusers[$this->filterToString($filter)])) { + $this->grpsusers[$this->filterToString($filter)] = []; + } + + $this->fillGroupUserArray( + $filter, + $start+$limit - count($this->grpsusers[$this->filterToString($filter)]) +1 + ); } - if (!$this->_grpsusers[$this->_filterToString($filter)]) return false; - foreach($this->_grpsusers[$this->_filterToString($filter)] as $user => &$info) { - if($i++ < $start) { + if (!$this->grpsusers[$this->filterToString($filter)]) return array(); + foreach ($this->grpsusers[$this->filterToString($filter)] as $user => &$info) { + if ($i++ < $start) { continue; } $result[$user] = $info; - if(($limit > 0) && (++$count >= $limit)) break; + if (($limit > 0) && (++$count >= $limit)) break; } - } return $result; } @@ -519,45 +559,46 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * @param array $changes array of field/value pairs to be changed * @return bool */ - public function modifyUser($user, $changes) { + public function modifyUser($user, $changes) + { $return = true; - $adldap = $this->_adldap($this->_userDomain($user)); - if(!$adldap) { + $adldap = $this->initAdLdap($this->getUserDomain($user)); + if (!$adldap) { msg($this->getLang('connectfail'), -1); return false; } // password changing - if(isset($changes['pass'])) { + if (isset($changes['pass'])) { try { - $return = $adldap->user()->password($this->_userName($user),$changes['pass']); + $return = $adldap->user()->password($this->getUserName($user), $changes['pass']); } catch (adLDAPException $e) { if ($this->conf['debug']) msg('AD Auth: '.$e->getMessage(), -1); $return = false; } - if(!$return) msg($this->getLang('passchangefail'), -1); + if (!$return) msg($this->getLang('passchangefail'), -1); } // changing user data $adchanges = array(); - if(isset($changes['name'])) { + if (isset($changes['name'])) { // get first and last name $parts = explode(' ', $changes['name']); $adchanges['surname'] = array_pop($parts); $adchanges['firstname'] = join(' ', $parts); $adchanges['display_name'] = $changes['name']; } - if(isset($changes['mail'])) { + if (isset($changes['mail'])) { $adchanges['email'] = $changes['mail']; } - if(count($adchanges)) { + if (count($adchanges)) { try { - $return = $return & $adldap->user()->modify($this->_userName($user),$adchanges); + $return = $return & $adldap->user()->modify($this->getUserName($user), $adchanges); } catch (adLDAPException $e) { if ($this->conf['debug']) msg('AD Auth: '.$e->getMessage(), -1); $return = false; } - if(!$return) msg($this->getLang('userchangefail'), -1); + if (!$return) msg($this->getLang('userchangefail'), -1); } return $return; @@ -573,20 +614,21 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * @param string|null $domain The AD domain to use * @return adLDAP|bool true if a connection was established */ - protected function _adldap($domain) { - if(is_null($domain) && is_array($this->opts)) { + protected function initAdLdap($domain) + { + if (is_null($domain) && is_array($this->opts)) { $domain = $this->opts['domain']; } - $this->opts = $this->_loadServerConfig((string) $domain); - if(isset($this->adldap[$domain])) return $this->adldap[$domain]; + $this->opts = $this->loadServerConfig((string) $domain); + if (isset($this->adldap[$domain])) return $this->adldap[$domain]; // connect try { $this->adldap[$domain] = new adLDAP($this->opts); return $this->adldap[$domain]; - } catch(adLDAPException $e) { - if($this->conf['debug']) { + } catch (Exception $e) { + if ($this->conf['debug']) { msg('AD Auth: '.$e->getMessage(), -1); } $this->success = false; @@ -601,7 +643,8 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * @param string $user * @return string */ - public function _userDomain($user) { + public function getUserDomain($user) + { list(, $domain) = explode('@', $user, 2); return $domain; } @@ -609,12 +652,17 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { /** * Get the user part from a user * + * When an account suffix is set, we strip the domain part from the user + * * @param string $user * @return string */ - public function _userName($user) { - list($name) = explode('@', $user, 2); - return $name; + public function getUserName($user) + { + if ($this->conf['account_suffix'] !== '') { + list($user) = explode('@', $user, 2); + } + return $user; } /** @@ -623,14 +671,15 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * @param string $domain current AD domain * @return array */ - protected function _loadServerConfig($domain) { + protected function loadServerConfig($domain) + { // prepare adLDAP standard configuration $opts = $this->conf; $opts['domain'] = $domain; // add possible domain specific configuration - if($domain && is_array($this->conf[$domain])) foreach($this->conf[$domain] as $key => $val) { + if ($domain && is_array($this->conf[$domain])) foreach ($this->conf[$domain] as $key => $val) { $opts[$key] = $val; } @@ -640,23 +689,27 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { $opts['domain_controllers'] = array_filter($opts['domain_controllers']); // compatibility with old option name - if(empty($opts['admin_username']) && !empty($opts['ad_username'])) $opts['admin_username'] = $opts['ad_username']; - if(empty($opts['admin_password']) && !empty($opts['ad_password'])) $opts['admin_password'] = $opts['ad_password']; + if (empty($opts['admin_username']) && !empty($opts['ad_username'])) { + $opts['admin_username'] = $opts['ad_username']; + } + if (empty($opts['admin_password']) && !empty($opts['ad_password'])) { + $opts['admin_password'] = $opts['ad_password']; + } $opts['admin_password'] = conf_decodeString($opts['admin_password']); // deobfuscate // we can change the password if SSL is set - if($opts['use_ssl'] || $opts['use_tls']) { + if ($opts['use_ssl'] || $opts['use_tls']) { $this->cando['modPass'] = true; } else { $this->cando['modPass'] = false; } // adLDAP expects empty user/pass as NULL, we're less strict FS#2781 - if(empty($opts['admin_username'])) $opts['admin_username'] = null; - if(empty($opts['admin_password'])) $opts['admin_password'] = null; + if (empty($opts['admin_username'])) $opts['admin_username'] = null; + if (empty($opts['admin_password'])) $opts['admin_password'] = null; // user listing needs admin priviledges - if(!empty($opts['admin_username']) && !empty($opts['admin_password'])) { + if (!empty($opts['admin_username']) && !empty($opts['admin_password'])) { $this->cando['getUsers'] = true; } else { $this->cando['getUsers'] = false; @@ -672,16 +725,17 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * * @return array associative array(key => domain) */ - public function _getConfiguredDomains() { + public function getConfiguredDomains() + { $domains = array(); - if(empty($this->conf['account_suffix'])) return $domains; // not configured yet + if (empty($this->conf['account_suffix'])) return $domains; // not configured yet // add default domain, using the name from account suffix $domains[''] = ltrim($this->conf['account_suffix'], '@'); // find additional domains - foreach($this->conf as $key => $val) { - if(is_array($val) && isset($val['account_suffix'])) { + foreach ($this->conf as $key => $val) { + if (is_array($val) && isset($val['account_suffix'])) { $domains[$key] = ltrim($val['account_suffix'], '@'); } } @@ -701,14 +755,15 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * @param array $info * @return bool */ - protected function _filter($user, $info) { - foreach($this->_pattern as $item => $pattern) { - if($item == 'user') { - if(!preg_match($pattern, $user)) return false; - } else if($item == 'grps') { - if(!count(preg_grep($pattern, $info['grps']))) return false; + protected function filter($user, $info) + { + foreach ($this->pattern as $item => $pattern) { + if ($item == 'user') { + if (!preg_match($pattern, $user)) return false; + } elseif ($item == 'grps') { + if (!count(preg_grep($pattern, $info['grps']))) return false; } else { - if(!preg_match($pattern, $info[$item])) return false; + if (!preg_match($pattern, $info[$item])) return false; } } return true; @@ -721,10 +776,11 @@ class auth_plugin_authad extends DokuWiki_Auth_Plugin { * * @param array $filter */ - protected function _constructPattern($filter) { - $this->_pattern = array(); - foreach($filter as $item => $pattern) { - $this->_pattern[$item] = '/'.str_replace('/', '\/', $pattern).'/i'; // allow regex characters + protected function constructPattern($filter) + { + $this->pattern = array(); + foreach ($filter as $item => $pattern) { + $this->pattern[$item] = '/'.str_replace('/', '\/', $pattern).'/i'; // allow regex characters } } } diff --git a/lib/plugins/authad/conf/default.php b/lib/plugins/authad/conf/default.php index f2834c808..84094ccc5 100644 --- a/lib/plugins/authad/conf/default.php +++ b/lib/plugins/authad/conf/default.php @@ -15,3 +15,4 @@ $conf['expirywarn'] = 0; $conf['additional'] = ''; $conf['update_name'] = 0; $conf['update_mail'] = 0; +$conf['recursive_groups'] = 0; diff --git a/lib/plugins/authad/conf/metadata.php b/lib/plugins/authad/conf/metadata.php index 6b0fc168b..945474c72 100644 --- a/lib/plugins/authad/conf/metadata.php +++ b/lib/plugins/authad/conf/metadata.php @@ -15,3 +15,4 @@ $meta['expirywarn'] = array('numeric', '_min'=>0,'_caution' => 'danger') $meta['additional'] = array('string','_caution' => 'danger'); $meta['update_name'] = array('onoff','_caution' => 'danger'); $meta['update_mail'] = array('onoff','_caution' => 'danger'); +$meta['recursive_groups'] = array('onoff','_caution' => 'danger'); diff --git a/lib/plugins/authad/lang/ar/lang.php b/lib/plugins/authad/lang/ar/lang.php index 173c80f0c..6ba640b33 100644 --- a/lib/plugins/authad/lang/ar/lang.php +++ b/lib/plugins/authad/lang/ar/lang.php @@ -2,9 +2,12 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * + * @author Khalid <khalid.aljahil@gmail.com> * @author Mohamed Belhsine <b.mohamed897@gmail.com> * @author Usama Akkad <uahello@gmail.com> */ $lang['domain'] = 'مجال تسجيل الدخول'; $lang['authpwdexpire'] = 'ستنتهي صلاحية كلمة السر في %d . عليك بتغييرها سريعا.'; +$lang['passchangefail'] = 'فشل تغيير كلمة المرور. قد يكون السبب عدم موافاة شروط كلمة المرور.'; +$lang['connectfail'] = 'فشل الاتصال بخادم Active Directory'; diff --git a/lib/plugins/authad/lang/ar/settings.php b/lib/plugins/authad/lang/ar/settings.php index d2a2e2a35..78f3acaea 100644 --- a/lib/plugins/authad/lang/ar/settings.php +++ b/lib/plugins/authad/lang/ar/settings.php @@ -2,11 +2,14 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * + * @author Khalid <khalid.aljahil@gmail.com> * @author alhajr <alhajr300@gmail.com> */ $lang['account_suffix'] = 'لاحقة الحساب الخاص بك. على سبيل المثال. <code>@my.domain.org</code>'; $lang['domain_controllers'] = 'قائمة مفصولة بفواصل من وحدات التحكم بالمجال. على سبيل المثال. <code>srv1.domain.org,srv2.domain.org</code>'; $lang['admin_password'] = 'كلمة المرور للمستخدم أعلاه.'; +$lang['sso'] = 'استخدام Kerberos أم NTLM لتسجيل الدخول الموحد؟'; $lang['real_primarygroup'] = 'ينبغي أن تحل المجموعة الأساسية الحقيقية بدلاً من افتراض "Domain Users" (أبطأ).'; +$lang['use_ssl'] = 'استخدام الاتصال المشفر (SSL)؟ في حال استخدامه الرجاء عدم تفعيل (TLS) أسفله.'; $lang['expirywarn'] = 'عدد الأيام المقدمة لتحذير المستخدم حول كلمة مرور منتهية الصلاحية. (0) للتعطيل.'; diff --git a/lib/plugins/authad/lang/bg/lang.php b/lib/plugins/authad/lang/bg/lang.php index 3de5df65f..816c4955e 100644 --- a/lib/plugins/authad/lang/bg/lang.php +++ b/lib/plugins/authad/lang/bg/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Kiril <neohidra@gmail.com> */ $lang['authpwdexpire'] = 'Срока на паролата ви ще изтече след %d дни. Препоръчително е да я смените по-скоро.'; diff --git a/lib/plugins/authad/lang/bg/settings.php b/lib/plugins/authad/lang/bg/settings.php index bf7a2d8ce..bcd2968dc 100644 --- a/lib/plugins/authad/lang/bg/settings.php +++ b/lib/plugins/authad/lang/bg/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Kiril <neohidra@gmail.com> */ $lang['account_suffix'] = 'Наставка на акаунта Ви. Например <code>@някакъв.домейн.org</code>'; diff --git a/lib/plugins/authad/lang/ca/settings.php b/lib/plugins/authad/lang/ca/settings.php index 161f55264..9aa38703b 100644 --- a/lib/plugins/authad/lang/ca/settings.php +++ b/lib/plugins/authad/lang/ca/settings.php @@ -3,6 +3,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Adolfo Jayme Barrientos <fito@libreoffice.org> * @author controlonline.net <controlonline.net@gmail.com> * @author Àngel Pérez Beroy <aperezberoy@gmail.com> * @author David Surroca <david.tb303@gmail.com> diff --git a/lib/plugins/authad/lang/cs/settings.php b/lib/plugins/authad/lang/cs/settings.php index c0e789581..d18d7ea1d 100644 --- a/lib/plugins/authad/lang/cs/settings.php +++ b/lib/plugins/authad/lang/cs/settings.php @@ -3,6 +3,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Robert Surý <rsurycz@seznam.cz> * @author mkucera66 <mkucera66@seznam.cz> * @author Jaroslav Lichtblau <jlichtblau@seznam.cz> * @author Daniel Slováček <danslo@danslo.cz> @@ -23,3 +24,4 @@ $lang['expirywarn'] = 'Dny mezi varováním o vypršení hesla uživa $lang['additional'] = 'Čárkou oddělený seznam dodatečných atributů získávaných z uživatelských dat. Využito některými pluginy.'; $lang['update_name'] = 'Povolit uživatelům upravit jejich AD zobrazované jméno?'; $lang['update_mail'] = 'Povolit uživatelům upravit svou emailovou adresu?'; +$lang['recursive_groups'] = 'Vyřešte vnořené skupiny do jejich příslušných členů (pomalejší).'; diff --git a/lib/plugins/authad/lang/da/lang.php b/lib/plugins/authad/lang/da/lang.php index 6badbafcc..c6a8778bb 100644 --- a/lib/plugins/authad/lang/da/lang.php +++ b/lib/plugins/authad/lang/da/lang.php @@ -7,6 +7,7 @@ * @author Mikael Lyngvig <mikael@lyngvig.org> */ $lang['domain'] = 'Logondomæne'; -$lang['authpwdexpire'] = 'Din adgangskode vil udløbe om %d dage, du bør ændre det snart.'; +$lang['authpwdexpire'] = 'Din adgangskode vil udløbe om %d dage, du bør ændre den snart.'; $lang['passchangefail'] = 'Kunne ikke skifte adgangskoden. Måske blev adgangskodepolitikken ikke opfyldt?'; +$lang['userchangefail'] = 'Kunne ikke ændre brugerkontoen. Din konto har muligvis ikke rettigheder til at lave ændringer.'; $lang['connectfail'] = 'Kunne ikke forbinde til Active Directory serveren.'; diff --git a/lib/plugins/authad/lang/da/settings.php b/lib/plugins/authad/lang/da/settings.php index 8b2d62462..e93f979bf 100644 --- a/lib/plugins/authad/lang/da/settings.php +++ b/lib/plugins/authad/lang/da/settings.php @@ -3,21 +3,23 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Jacob Palm <jacobpalmdk@icloud.com> * @author Soren Birk <soer9648@hotmail.com> * @author Jens Hyllegaard <jens.hyllegaard@gmail.com> - * @author Jacob Palm <mail@jacobpalm.dk> */ $lang['account_suffix'] = 'Dit konto suffiks. F.eks. <code>@mit.domæne.dk</code>'; $lang['base_dn'] = 'Dit grund DN. F.eks. <code>DC=mit,DC=domæne,DC=dk</code>'; $lang['domain_controllers'] = 'En kommasepareret liste over domænecontrollere. F.eks. <code>srv1.domain.org,srv2.domain.org</code>'; $lang['admin_username'] = 'En privilegeret Active Directory bruger med adgang til alle andre brugeres data. Valgfri, men skal bruges til forskellige handlinger såsom at sende abonnement e-mails.'; -$lang['admin_password'] = 'Kodeordet til den ovenstående bruger.'; -$lang['sso'] = 'Bør Single-Sign-On via Kerberos eller NTLM bruges?'; +$lang['admin_password'] = 'Adgangskoden til den ovenstående brugerkonto.'; +$lang['sso'] = 'Skal der benyttes Single-Sign-On via Kerberos eller NTLM?'; +$lang['sso_charset'] = 'Tegnsættet din webserver leverer Kerberos eller NTLM brugernavnet i. Efterlad blank for UTF-8 eller latin-1. Kræver iconv udvidelsen.'; $lang['real_primarygroup'] = 'Bør den korrekte primære gruppe findes i stedet for at antage "Domain Users" (langsommere)'; -$lang['use_ssl'] = 'Benyt SSL forbindelse? hvis ja, vælg ikke TLS herunder.'; -$lang['use_tls'] = 'Benyt TLS forbindelse? hvis ja, vælg ikke SSL herover.'; +$lang['use_ssl'] = 'Benyt SSL forbindelse? Hvis ja, vælg ikke TLS herunder.'; +$lang['use_tls'] = 'Benyt TLS forbindelse? Hvis ja, vælg ikke SSL herover.'; $lang['debug'] = 'Vis yderligere debug output ved fejl?'; -$lang['expirywarn'] = 'Dage før brugere skal advares om udløben adgangskode. 0 for at deaktivere.'; +$lang['expirywarn'] = 'Dage før udløb af adgangskode brugere skal advares. Angiv 0 for at deaktivere notifikation.'; $lang['additional'] = 'En kommasepareret liste over yderligere AD attributter der skal hentes fra brugerdata. Brug af nogen udvidelser.'; $lang['update_name'] = 'Tillad at brugere opdaterer deres visningnavn i AD?'; $lang['update_mail'] = 'Tillad at brugere opdaterer deres e-mail adresse?'; +$lang['recursive_groups'] = 'Opslå nedarvede grupper til deres individuelle medlemmer (langsommere)'; diff --git a/lib/plugins/authad/lang/de/settings.php b/lib/plugins/authad/lang/de/settings.php index 5708411d2..5d8d9b8de 100644 --- a/lib/plugins/authad/lang/de/settings.php +++ b/lib/plugins/authad/lang/de/settings.php @@ -3,6 +3,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author C!own77 <clown77@posteo.de> * @author Frank Loizzi <contact@software.bacal.de> * @author Matthias Schulte <dokuwiki@lupo49.de> * @author Ben Fey <benedikt.fey@beck-heun.de> @@ -24,3 +25,4 @@ $lang['expirywarn'] = 'Tage im Voraus um Benutzer über ablaufende Pa $lang['additional'] = 'Eine Komma-separierte Liste von zusätzlichen AD-Attributen, die von den Benutzerobjekten abgefragt werden. Wird von einigen Plugins benutzt.'; $lang['update_name'] = 'Benutzern erlauben, ihren AD Anzeige-Namen zu ändern?'; $lang['update_mail'] = 'Benutzern erlauben, ihre E-Mail-Adresse zu ändern?'; +$lang['recursive_groups'] = 'Auflösen verschachtelter Gruppen für ihre jeweiligen Mitglieder (langsamer).'; diff --git a/lib/plugins/authad/lang/el/lang.php b/lib/plugins/authad/lang/el/lang.php index c6064f05c..2728d0163 100644 --- a/lib/plugins/authad/lang/el/lang.php +++ b/lib/plugins/authad/lang/el/lang.php @@ -3,6 +3,11 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * - * @author Vasileios Karavasilis vasileioskaravasilis@gmail.com + * @author Katerina Katapodi <extragold1234@hotmail.com> + * @author Vasileios Karavasilis <vasileioskaravasilis@gmail.com> */ +$lang['domain'] = 'Logon Domain'; $lang['authpwdexpire'] = 'Ο κωδικός πρόσβασης θα λήξει σε %d ημέρες. Προτείνουμε να τον αλλάξετε σύντομα.'; +$lang['passchangefail'] = 'Ο κωδικός πρόσβασης δεν μπόρεσε να αλλάξει. Μήπως δεν ακολουθήθηκαν οι κατάλληλες οδηγίες της πολιτικής κωδικού πρόσβασης?'; +$lang['userchangefail'] = 'Αποτυχία αλλαγής των στοιχείων του χρήστη. Μπορεί ο λογαριασμός σας να μην έχει άδεια να κάνει αλλαγές. '; +$lang['connectfail'] = 'Δεν μπόρεσε να συνδέσει στον διακομιστή Active Directory (Ενεργή Λίστα διευθύνσεων).'; diff --git a/lib/plugins/authad/lang/el/settings.php b/lib/plugins/authad/lang/el/settings.php index b7608dff0..381b59307 100644 --- a/lib/plugins/authad/lang/el/settings.php +++ b/lib/plugins/authad/lang/el/settings.php @@ -3,6 +3,22 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Aikaterini Katapodi <extragold1234@hotmail.com> * @author chris taklis <ctaklis@gmail.com> */ +$lang['account_suffix'] = 'Το πρόσημο του λογαριασμού σας. Π.χ <code>@my.domain.org</code>'; +$lang['base_dn'] = 'Το βασικό σας DN. Eg. <code>DC=my,DC=domain,DC=org</code> '; +$lang['domain_controllers'] = 'Μία λίστα χωρισμένη με κόμμα, των ελεγκτών του Domain. Π.χ. <code>srv1.domain.org,srv2.domain.org</code> '; +$lang['admin_username'] = 'Ένας προνομιούχος χρήστης της Ενεργούς Λίστας Διευθύνσεων με πρόσβαση στα δεδομένα άλλων χρηστών. Προαιρετικό, αλλά χρειάζεται για ορισμένες ενέργειες όπως αποστολή ηλεκτρονικών μηνυμάτων εγγραφής. '; $lang['admin_password'] = 'Ο κωδικός του παραπάνω χρήστη.'; +$lang['sso'] = 'Πρέπει να χρησιμοποιηθεί το Single-Sign-On μέσω Kerberos ή το NTLM ? '; +$lang['sso_charset'] = 'To \'\'charset\'\' που ο διακομιστής ιστοσελίδας σας θα περάσει το Kerberos ή το όνομα χρήστη NTLM . Είναι άδειο για το UTF-8 η το λατινικό -1. Χρειάζεται την προέκταση inconv. '; +$lang['real_primarygroup'] = 'Πρέπει να ισχύσει η βασική ομάδα αντί να ληφθεί υπόψη το \'\'Domain Users\'\' (πιο αργό).'; +$lang['use_ssl'] = 'Να γίνει χρήση της σύνδεσης SSL? Αν χρησιμοποιείται μην ενεργοποιείστε το TLS πιο κάτω. '; +$lang['use_tls'] = 'Να γίνει σύνδεση του TLS?Αν ήδη χρησιμοποιείται, μην ενεργοποιείστε το SSL πιο πάνω. '; +$lang['debug'] = 'Να προβληθεί το επιπλέον σύστημα ανίχνευσης λαθών ?'; +$lang['expirywarn'] = 'Πρέπει να προειδοποιηθεί ο χρήστης πριν λίγες ημέρες για την λήξη του κωδικού πρόσβασης. 0 για να απενεργοποιείστε.'; +$lang['additional'] = 'Μία λίστα που χωρίζεται με κόμμα, με AD επιπλέον ιδιότητες για να φέρουν στοιχεία από τον χρήστη. Χρησιμοποιείται από κάποια επιπρόσθετα.'; +$lang['update_name'] = 'Να επιτρέπεται στους χρήστες να ενημερώνουν το AD όνομα τους που προβάλλεται?'; +$lang['update_mail'] = 'Να επιτρέπεται στους χρήστες να ενημερώνουν την διεύθυνση ηλεκτρονικού τους ταχυδρομείου?'; +$lang['recursive_groups'] = 'Να γίνεται καταχώρηση των μελών των ομάδων?'; diff --git a/lib/plugins/authad/lang/en/settings.php b/lib/plugins/authad/lang/en/settings.php index 9e7a7c320..3de9a7260 100644 --- a/lib/plugins/authad/lang/en/settings.php +++ b/lib/plugins/authad/lang/en/settings.php @@ -15,3 +15,4 @@ $lang['expirywarn'] = 'Days in advance to warn user about expiring passw $lang['additional'] = 'A comma separated list of additional AD attributes to fetch from user data. Used by some plugins.'; $lang['update_name'] = 'Allow users to update their AD display name?'; $lang['update_mail'] = 'Allow users to update their email address?'; +$lang['recursive_groups'] = 'Resolve nested groups to their respective members (slower).'; diff --git a/lib/plugins/authad/lang/eo/lang.php b/lib/plugins/authad/lang/eo/lang.php index 94580c6cf..2beab5f2e 100644 --- a/lib/plugins/authad/lang/eo/lang.php +++ b/lib/plugins/authad/lang/eo/lang.php @@ -3,7 +3,9 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Florian <florianmail55@gmail.com> * @author Robert Bogenschneider <bogi@uea.org> */ $lang['domain'] = 'Ensaluta domajno'; $lang['authpwdexpire'] = 'Via pasvorto malvalidos post %d tagoj, prefere ŝanĝu ĝin baldaũ.'; +$lang['connectfail'] = 'Malsukcesis konekti al Aktivan Dosierumon servilo.'; diff --git a/lib/plugins/authad/lang/eo/settings.php b/lib/plugins/authad/lang/eo/settings.php index cf9cad0c2..09b594c51 100644 --- a/lib/plugins/authad/lang/eo/settings.php +++ b/lib/plugins/authad/lang/eo/settings.php @@ -3,6 +3,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Florian <florianmail55@gmail.com> * @author Robert Bogenschneider <bogi@uea.org> */ $lang['account_suffix'] = 'Via konto-aldonaĵo, ekz. <code>@mia.domajno.lando</code>'; @@ -18,3 +19,4 @@ $lang['use_tls'] = 'Ĉu uzi TLS-konekton? Se jes, ne aktivigu SSL $lang['debug'] = 'Ĉu montri aldonajn informojn dum eraroj?'; $lang['expirywarn'] = 'Tagoj da antaŭaverto pri malvalidiĝonta pasvorto. 0 por malebligi.'; $lang['additional'] = 'Komodisigita listo de aldonaj AD-atributoj por preni el uzantaj datumoj. Uzita de iuj kromaĵoj.'; +$lang['update_mail'] = 'Ĉu permesi uzantoj ĝisdatigi siajn retardesojn?'; diff --git a/lib/plugins/authad/lang/es/settings.php b/lib/plugins/authad/lang/es/settings.php index 789222236..c329c8e7f 100644 --- a/lib/plugins/authad/lang/es/settings.php +++ b/lib/plugins/authad/lang/es/settings.php @@ -3,6 +3,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Liliana <lilianasaidon@gmail.com> * @author monica <may.dorado@gmail.com> * @author Antonio Bueno <atnbueno@gmail.com> * @author Juan De La Cruz <juann.dlc@gmail.com> @@ -24,3 +25,4 @@ $lang['expirywarn'] = 'Días por adelantado para avisar al usuario de $lang['additional'] = 'Una lista separada por comas de atributos AD adicionales a obtener de los datos de usuario. Usado por algunos plugins.'; $lang['update_name'] = '¿Permitir a los usuarios actualizar su nombre de AD?'; $lang['update_mail'] = '¿Permitir a los usuarios actualizar su email?'; +$lang['recursive_groups'] = 'Restituir los grupos anidados a sus respectivos miembros (más lento)'; diff --git a/lib/plugins/authad/lang/fi/lang.php b/lib/plugins/authad/lang/fi/lang.php index 88a87b87c..776e68a86 100644 --- a/lib/plugins/authad/lang/fi/lang.php +++ b/lib/plugins/authad/lang/fi/lang.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Jussi Takala <jussi.takala@live.fi> */ $lang['authpwdexpire'] = 'Salasanasi vanhenee %d pv:n päästä, vaihda salasanasi pikaisesti.'; diff --git a/lib/plugins/authad/lang/fi/settings.php b/lib/plugins/authad/lang/fi/settings.php index e2f432f36..f0b5276e7 100644 --- a/lib/plugins/authad/lang/fi/settings.php +++ b/lib/plugins/authad/lang/fi/settings.php @@ -2,7 +2,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * + * * @author Otto Vainio <otto@valjakko.net> */ $lang['debug'] = 'Näytä lisää debug-koodia virheistä?'; diff --git a/lib/plugins/authad/lang/fr/settings.php b/lib/plugins/authad/lang/fr/settings.php index f747c08ae..f0717c7a8 100644 --- a/lib/plugins/authad/lang/fr/settings.php +++ b/lib/plugins/authad/lang/fr/settings.php @@ -3,16 +3,16 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Schplurtz le Déboulonné <schplurtz@laposte.net> * @author Bruno Veilleux <bruno.vey@gmail.com> * @author Momo50 <c.brothelande@gmail.com> - * @author Schplurtz le Déboulonné <Schplurtz@laposte.net> */ $lang['account_suffix'] = 'Le suffixe de votre compte. Ex.: <code>@mon.domaine.org</code>'; $lang['base_dn'] = 'Votre nom de domaine de base. <code>DC=mon,DC=domaine,DC=org</code>'; $lang['domain_controllers'] = 'Une liste de contrôleurs de domaine séparés par des virgules. Ex.: <code>srv1.domaine.org,srv2.domaine.org</code>'; $lang['admin_username'] = 'Un utilisateur Active Directory avec accès aux données de tous les autres utilisateurs. Facultatif, mais nécessaire pour certaines actions telles que l\'envoi de courriels d\'abonnement.'; $lang['admin_password'] = 'Le mot de passe de l\'utilisateur ci-dessus.'; -$lang['sso'] = 'Est-ce que la connexion unique (Single-Sign-On) par Kerberos ou NTLM doit être utilisée?'; +$lang['sso'] = 'Est-ce que l\'authentification unique (Single-Sign-On) par Kerberos ou NTLM doit être utilisée?'; $lang['sso_charset'] = 'Le jeu de caractères de votre serveur web va passer le nom d\'utilisateur Kerberos ou NTLM. Vide pour UTF-8 ou latin-1. Nécessite l\'extension iconv.'; $lang['real_primarygroup'] = 'Est-ce que le véritable groupe principal doit être résolu au lieu de présumer "Domain Users" (plus lent)?'; $lang['use_ssl'] = 'Utiliser une connexion SSL? Si utilisée, n\'activez pas TLS ci-dessous.'; @@ -22,3 +22,4 @@ $lang['expirywarn'] = 'Jours d\'avance pour l\'avertissement envoyé $lang['additional'] = 'Une liste séparée par des virgules d\'attributs AD supplémentaires à récupérer dans les données utilisateur. Utilisée par certains modules.'; $lang['update_name'] = 'Autoriser les utilisateurs à modifier leur nom affiché de l\'AD ?'; $lang['update_mail'] = 'Autoriser les utilisateurs à modifier leur adresse de courriel ?'; +$lang['recursive_groups'] = 'Résoudre les groupes imbriqués à leur membres respectifs (plus lent).'; diff --git a/lib/plugins/authad/lang/it/settings.php b/lib/plugins/authad/lang/it/settings.php index 9fd82352a..8d641720b 100644 --- a/lib/plugins/authad/lang/it/settings.php +++ b/lib/plugins/authad/lang/it/settings.php @@ -3,6 +3,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Roberto Bellingeri <bellingeri@netguru.it> * @author Edmondo Di Tucci <snarchio@gmail.com> * @author Torpedo <dgtorpedo@gmail.com> */ @@ -21,3 +22,4 @@ $lang['expirywarn'] = 'Giorni di preavviso per la scadenza della pass $lang['additional'] = 'Valori separati da virgola di attributi AD addizionali da caricare dai dati utente. Usato da alcuni plugin.'; $lang['update_name'] = 'Permettere agli utenti di aggiornare il loro nome AD visualizzato? '; $lang['update_mail'] = 'Permettere agli utenti di aggiornare il loro indirizzo e-mail?'; +$lang['recursive_groups'] = 'Risolvi i gruppi nidificati ai rispettivi membri (più lento).'; diff --git a/lib/plugins/authad/lang/ja/settings.php b/lib/plugins/authad/lang/ja/settings.php index 0dc56494a..84f09b469 100644 --- a/lib/plugins/authad/lang/ja/settings.php +++ b/lib/plugins/authad/lang/ja/settings.php @@ -3,22 +3,24 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author HokkaidoPerson <dosankomali@yahoo.co.jp> * @author Satoshi Sahara <sahara.satoshi@gmail.com> * @author Hideaki SAWADA <chuno@live.jp> * @author PzF_X <jp_minecraft@yahoo.co.jp> */ -$lang['account_suffix'] = 'アカウントの接尾語。例:<code>@my.domain.org</code>'; -$lang['base_dn'] = 'ベースDN。例:<code>DC=my,DC=domain,DC=org</code>'; -$lang['domain_controllers'] = 'ドメインコントローラのカンマ区切り一覧。例:<code>srv1.domain.org,srv2.domain.org</code>'; -$lang['admin_username'] = '全ユーザーデータへのアクセス権のある特権Active Directoryユーザー。任意ですが、メール通知の登録等の特定の動作に必要。'; +$lang['account_suffix'] = 'アカウントの接尾語(例:<code>@my.domain.org</code>)'; +$lang['base_dn'] = 'ベースDN(例:<code>DC=my,DC=domain,DC=org</code>)'; +$lang['domain_controllers'] = 'ドメインコントローラのカンマ区切り一覧(例:<code>srv1.domain.org,srv2.domain.org</code>)'; +$lang['admin_username'] = '全ユーザーデータへのアクセス権のある特権Active Directoryユーザー(任意ですが、メール通知の登録等の特定の動作に必要となります。)'; $lang['admin_password'] = '上記ユーザーのパスワード'; $lang['sso'] = 'Kerberos か NTLM を使ったシングルサインオン(SSO)をしますか?'; $lang['sso_charset'] = 'サーバーは空のUTF-8かLatin-1でKerberosかNTLMユーザネームを送信します。iconv拡張モジュールが必要です。'; $lang['real_primarygroup'] = '"Domain Users" を仮定する代わりに本当のプライマリグループを解決する(低速)'; -$lang['use_ssl'] = 'SSL接続を使用しますか?使用した場合、下のSSLを有効にしないでください。'; -$lang['use_tls'] = 'TLS接続を使用しますか?使用した場合、上のSSLを有効にしないでください。'; -$lang['debug'] = 'エラー時に追加のデバッグ出力を表示する?'; -$lang['expirywarn'] = '何日前からパスワードの有効期限をユーザーに警告する。0 の場合は無効'; -$lang['additional'] = 'ユーザデータから取得する追加AD属性のカンマ区切り一覧。いくつかのプラグインが使用する。'; -$lang['update_name'] = 'ユーザー自身にAD表示名の変更を許可しますか?'; -$lang['update_mail'] = 'ユーザー自身にメールアドレスの変更を許可しますか?'; +$lang['use_ssl'] = 'SSL接続を使用する(使用する場合、下のTLSを有効にしないでください。)'; +$lang['use_tls'] = 'TLS接続を使用する(使用する場合、上のSSLを有効にしないでください。)'; +$lang['debug'] = 'エラー時に追加のデバッグ出力を表示する'; +$lang['expirywarn'] = '何日前からパスワードの有効期限をユーザーに警告するか(0 の場合は無効)'; +$lang['additional'] = 'ユーザデータから取得する追加AD属性のカンマ区切り一覧(一部プラグインが使用します。)'; +$lang['update_name'] = 'ユーザー自身にAD表示名の変更を許可する'; +$lang['update_mail'] = 'ユーザー自身にメールアドレスの変更を許可する'; +$lang['recursive_groups'] = 'それぞれのメンバーについて入れ子のグループを解決する(動作が遅くなります)'; diff --git a/lib/plugins/authad/lang/nl/settings.php b/lib/plugins/authad/lang/nl/settings.php index c0be12e79..b8b58a1bb 100644 --- a/lib/plugins/authad/lang/nl/settings.php +++ b/lib/plugins/authad/lang/nl/settings.php @@ -3,8 +3,8 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * - * @author Remon <no@email.local> * @author Gerrit Uitslag <klapinklapin@gmail.com> + * @author Remon <no@email.local> * @author Sjoerd <sjoerd@sjomar.eu> */ $lang['account_suffix'] = 'Je account domeinnaam. Bijv <code>@mijn.domein.org</code>'; @@ -22,3 +22,4 @@ $lang['expirywarn'] = 'Waarschuwingstermijn voor vervallen wachtwoord $lang['additional'] = 'Een kommagescheiden lijst van extra AD attributen van de gebruiker. Wordt gebruikt door sommige plugins.'; $lang['update_name'] = 'Sta gebruikers toe om hun getoonde AD naam bij te werken'; $lang['update_mail'] = 'Sta gebruikers toe hun email adres bij te werken'; +$lang['recursive_groups'] = 'Zoek voor de geneste groepen hun respectievelijke leden op (langzamer).'; diff --git a/lib/plugins/authad/lang/pl/settings.php b/lib/plugins/authad/lang/pl/settings.php index d5af79c33..6e9814e8e 100644 --- a/lib/plugins/authad/lang/pl/settings.php +++ b/lib/plugins/authad/lang/pl/settings.php @@ -3,6 +3,8 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Bartek S <sadupl@gmail.com> + * @author Przemek <p_kudriawcew@o2.pl> * @author Wojciech Lichota <wojciech@lichota.pl> * @author Max <maxrb146@gmail.com> * @author Tomasz Bosak <bosak.tomasz@gmail.com> @@ -27,3 +29,4 @@ $lang['expirywarn'] = 'Dni poprzedzających powiadomienie użytkownik $lang['additional'] = 'Oddzielona przecinkami lista dodatkowych atrybutów AD do pobrania z danych użytkownika. Używane przez niektóre wtyczki.'; $lang['update_name'] = 'Zezwól użytkownikom na uaktualnianie nazwy wyświetlanej w AD?'; $lang['update_mail'] = 'Zezwól użytkownikom na uaktualnianie ich adresu email?'; +$lang['recursive_groups'] = 'Rozpatrz grupy zagnieżdżone dla odpowiednich członków (wolniej).'; diff --git a/lib/plugins/authad/lang/pt-br/settings.php b/lib/plugins/authad/lang/pt-br/settings.php index 1231077da..d606682aa 100644 --- a/lib/plugins/authad/lang/pt-br/settings.php +++ b/lib/plugins/authad/lang/pt-br/settings.php @@ -3,8 +3,8 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Frederico Gonçalves Guimarães <frederico@teia.bio.br> * @author Victor Westmann <victor.westmann@gmail.com> - * @author Frederico Guimarães <frederico@teia.bio.br> * @author Juliano Marconi Lanigra <juliano.marconi@gmail.com> * @author Viliam Dias <viliamjr@gmail.com> */ @@ -23,3 +23,4 @@ $lang['expirywarn'] = 'Dias com antecedência para avisar o usuário $lang['additional'] = 'Uma lista separada de vírgulas de atributos adicionais AD para pegar dados de usuários. Usados por alguns plugins.'; $lang['update_name'] = 'Permitir aos usuários que atualizem seus nomes de exibição AD?'; $lang['update_mail'] = 'Permitir aos usuários que atualizem seu endereço de e-mail?'; +$lang['recursive_groups'] = 'Resolver grupos aninhados para seus respectivos membros (mais lento).'; diff --git a/lib/plugins/authad/lang/pt/lang.php b/lib/plugins/authad/lang/pt/lang.php index 4f8266b5b..5d4a9a350 100644 --- a/lib/plugins/authad/lang/pt/lang.php +++ b/lib/plugins/authad/lang/pt/lang.php @@ -3,11 +3,14 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Paulo Schopf <pschopf@gmail.com> + * @author Maykon Oliveira <maykonoliveira850@gmail.com> * @author Paulo Silva <paulotsilva@yahoo.com> * @author André Neves <drakferion@gmail.com> * @author Paulo Carmino <contato@paulocarmino.com> */ -$lang['domain'] = 'Domínio de Início de Sessão'; -$lang['authpwdexpire'] = 'A sua senha expirará dentro de %d dias, deve mudá-la em breve.'; +$lang['domain'] = 'Domínio de Login'; +$lang['authpwdexpire'] = 'A sua senha expira dentro de %d dias, deve mudá-la em breve.'; $lang['passchangefail'] = 'Falha ao alterar a senha. Tente prosseguir com uma senha mais segura.'; +$lang['userchangefail'] = 'Não foi possível alterar os atributos do usuário. Talvez sua conta não tenha permissões para fazer alterações?'; $lang['connectfail'] = 'Falha ao conectar com o servidor Active Directory.'; diff --git a/lib/plugins/authad/lang/pt/settings.php b/lib/plugins/authad/lang/pt/settings.php index b734c4800..4409fe14f 100644 --- a/lib/plugins/authad/lang/pt/settings.php +++ b/lib/plugins/authad/lang/pt/settings.php @@ -3,6 +3,8 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Paulo Schopf <pschopf@gmail.com> + * @author Maykon Oliveira <maykonoliveira850@gmail.com> * @author André Neves <drakferion@gmail.com> * @author Murilo <muriloricci@hotmail.com> * @author Paulo Silva <paulotsilva@yahoo.com> @@ -12,14 +14,16 @@ $lang['account_suffix'] = 'O sufixo da sua conta. Por exemplo, <code>@my.domain.org</code>'; $lang['base_dn'] = 'Sua base DN. Eg. <code> DC=meu, DC=dominio, DC=org </code>'; $lang['domain_controllers'] = 'Uma lista separada por vírgulas de Controladores de Domínio (AD DC). Ex.: <code>srv1.domain.org,srv2.domain.org</code>'; -$lang['admin_username'] = 'Um utilizador com privilégios na Active Directory que tenha acesso aos dados de todos os outros utilizadores. Opcional, mas necessário para certas ações como enviar emails de subscrição.'; -$lang['admin_password'] = 'A senha para o utilizador acima.'; +$lang['admin_username'] = 'Um usuário com privilégios no Active Directory que tenha acesso aos dados de todos os outros usuários. Opcional, mas necessário para certas ações como enviar e-mails de subscrição.'; +$lang['admin_password'] = 'A senha para o usuário acima.'; $lang['sso'] = 'Deve ser usado o Single-Sign-On via Kerberos ou NTLM?'; $lang['sso_charset'] = 'O charset do seu servidor web vai passar o nome de usuário Kerberos ou NTLM vazio para UTF-8 ou latin-1. Requer a extensão iconv.'; -$lang['real_primarygroup'] = 'Deveria ser resolvido, de fato, o grupo primário ao invés de assumir "Usuários de Domínio" (mais lento).'; -$lang['use_ssl'] = 'Usar ligação SSL? Se usada, não ative TLS abaixo.'; -$lang['use_tls'] = 'Usar ligação TLS? Se usada, não ative SSL abaixo.'; +$lang['real_primarygroup'] = 'O grupo primário deveria ser resolvido ao invés de assumir "Usuários de Domínio" (mais lento).'; +$lang['use_ssl'] = 'Usar conexão SSL? Se usada, não ative a TLS abaixo.'; +$lang['use_tls'] = 'Usar conexão TLS? Se usada, não ative SSL abaixo.'; $lang['debug'] = 'Deve-se mostrar saída adicional de depuração de erros?'; $lang['expirywarn'] = 'Número de dias de avanço para avisar o utilizador da expiração da senha. 0 para desativar.'; $lang['additional'] = 'Uma lista separada por vírgula de atributos adicionais de AD para buscar a partir de dados do usuário. Usado por alguns plugins.'; +$lang['update_name'] = 'Permitir que os usuários atualizem seu nome de exibição do AD?'; $lang['update_mail'] = 'Permitir que usuários atualizem seus endereços de e-mail?'; +$lang['recursive_groups'] = 'Resolve grupos aninhados para seus respectivos membros (mais lento).'; diff --git a/lib/plugins/authad/lang/ro/settings.php b/lib/plugins/authad/lang/ro/settings.php new file mode 100644 index 000000000..2a2541aac --- /dev/null +++ b/lib/plugins/authad/lang/ro/settings.php @@ -0,0 +1,8 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Victor <kvp@live.com> + */ +$lang['admin_password'] = 'Parola utilizatorului de mai sus.'; diff --git a/lib/plugins/authad/lang/ru/settings.php b/lib/plugins/authad/lang/ru/settings.php index d6bc8fc8a..81b3296bd 100644 --- a/lib/plugins/authad/lang/ru/settings.php +++ b/lib/plugins/authad/lang/ru/settings.php @@ -3,6 +3,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Alexander Kh. <001.arx@gmail.com> * @author Yuriy Skalko <yuriy.skalko@gmail.com> * @author Ivan I. Udovichenko (sendtome@mymailbox.pp.ua) * @author Aleksandr Selivanov <alexgearbox@gmail.com> @@ -28,3 +29,4 @@ $lang['expirywarn'] = 'За сколько дней нужно пре $lang['additional'] = 'Дополнительные AD-атрибуты, разделённые запятой, для выборки из данных пользователя. Используется некоторыми плагинами.'; $lang['update_name'] = 'Разрешить пользователям редактировать свое AD-имя?'; $lang['update_mail'] = 'Разрешить пользователям редактировать свой электронный адрес?'; +$lang['recursive_groups'] = 'Разрешить вложенные группы их соответствующим членам.'; diff --git a/lib/plugins/authad/lang/sr/settings.php b/lib/plugins/authad/lang/sr/settings.php index 5e4409cc3..41e3fa48c 100644 --- a/lib/plugins/authad/lang/sr/settings.php +++ b/lib/plugins/authad/lang/sr/settings.php @@ -3,6 +3,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author Milan Oparnica <milan.opa@gmail.com> * @author Марко М. Костић <marko.m.kostic@gmail.com> */ $lang['account_suffix'] = 'Суфикс на вашем налогу. Нпр.: <code>@moj.domen.rs</code>'; @@ -11,9 +12,13 @@ $lang['domain_controllers'] = 'Списак доменских контрол $lang['admin_username'] = 'Повлашћени Active Directory корисник са приступом подацима свих корисника. Изборно али је потребно за одређене радње као што је слање мејлова о претплаћивању.'; $lang['admin_password'] = 'Лозинка за корисника изнад.'; $lang['sso'] = 'Да ли треба да се користи Single-Sign-On преко Кербероса или NTLM-а?'; +$lang['sso_charset'] = 'Znakovni kod u kom će vaš webserver proslediti Kerberos ili NTLM serveru vaše ime. Ostavite prazno za UTF-8 ili latin-1. Zahteva iconv ekstenziju.'; +$lang['real_primarygroup'] = 'Da li treba razrešiti pravu primarnu grupu ili pretpostaviti grupu "Domain Users" (sporije)'; $lang['use_ssl'] = 'Користити SSL везу? Ако се користи, не омогућујте TLS испод.'; $lang['use_tls'] = 'Користити TLS везу? Ако се користи, не омогућујте SSL испод.'; $lang['debug'] = 'Приказати додатан излаз за поправљање грешака код настанка грешака?'; $lang['expirywarn'] = 'Дана унапред за које треба упозорити корисника на истицање лозинке. 0 за искључивање.'; +$lang['additional'] = 'Spisak dodatni AD atributa, razdvojen zarezima, koje treba preuzeti iz korisničkih podataka. Koristi se u nekim dodacima (plugin).'; $lang['update_name'] = 'Дозволити корисницима да ажурирају њихово AD приказно име?'; $lang['update_mail'] = 'Дозволити корисницима да ажурирају њихове мејл адрсе?'; +$lang['recursive_groups'] = 'Razrešenje ugnježdenih grupa do nivoa pripadajućih članova (sporije)'; diff --git a/lib/plugins/authad/lang/tr/lang.php b/lib/plugins/authad/lang/tr/lang.php index 2336e0f0c..2ab16cb8c 100644 --- a/lib/plugins/authad/lang/tr/lang.php +++ b/lib/plugins/authad/lang/tr/lang.php @@ -2,7 +2,11 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) - * - * @author farukerdemoncel@gmail.com + * + * @author mahir <mahirtakak@gmail.com> + * @author farukerdemoncel <farukerdemoncel@gmail.com> */ +$lang['domain'] = 'Oturum alanadı'; $lang['authpwdexpire'] = 'Şifreniz %d gün sonra geçersiz hale gelecek, yakın bir zamanda değiştirmelisiniz.'; +$lang['passchangefail'] = 'Şifre değiştirilemedi. Şifre gereklilikleri yerine getirilmemiş olabilir mi?'; +$lang['connectfail'] = 'Active Directory sunucusuna bağlanılamadı'; diff --git a/lib/plugins/authad/lang/tr/settings.php b/lib/plugins/authad/lang/tr/settings.php new file mode 100644 index 000000000..8dfc4622b --- /dev/null +++ b/lib/plugins/authad/lang/tr/settings.php @@ -0,0 +1,12 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Hakan <hakandursun2009@gmail.com> + * @author mahir <mahirtakak@gmail.com> + */ +$lang['admin_password'] = 'Yukarıdaki kullanıcının şifresi.'; +$lang['debug'] = 'Hatalarda ek hata ayıklama çıktısı gösterilsin mi?'; +$lang['update_name'] = 'Kullanıcıların AD görünen adlarını güncellemelerine izin verilsin mi?'; +$lang['update_mail'] = 'Kullanıcıların e-posta adresini güncellemelerine izin verilsin mi?'; diff --git a/lib/plugins/authad/lang/uk/settings.php b/lib/plugins/authad/lang/uk/settings.php index 0c76e7d9d..1e0bd3d52 100644 --- a/lib/plugins/authad/lang/uk/settings.php +++ b/lib/plugins/authad/lang/uk/settings.php @@ -3,12 +3,14 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author velmyshanovnyi <velmyshanovnyi@gmail.com> * @author Oleksii <alexey.furashev@gmail.com> * @author Nina Zolotova <nina-z@i.ua> */ $lang['account_suffix'] = 'Суфікс вашого облікового запису. Щось на шквалт: <code>@my.domain.org</code>'; $lang['base_dn'] = 'Ваш DN. Щось на шквалт: <code>DC=my,DC=domain,DC=org</code>'; $lang['admin_password'] = 'Пароль вказаного користувача.'; +$lang['sso'] = 'Чи потрібно використовувати Single-Sign-On через Kerberos чи NTLM?'; $lang['use_ssl'] = 'Використовуєте SSL-з\'єднання? Якщо так, не вмикайте TLS нижче.'; $lang['use_tls'] = 'Використовуєте TLS-з\'єднання? Якщо так, не вмикайте SSL нижче.'; $lang['debug'] = 'Показати додаткові відомості щодо помилок?'; diff --git a/lib/plugins/authad/lang/vi/lang.php b/lib/plugins/authad/lang/vi/lang.php new file mode 100644 index 000000000..36aa21219 --- /dev/null +++ b/lib/plugins/authad/lang/vi/lang.php @@ -0,0 +1,12 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Thien Hau <thienhausoftware@gmail.com> + */ +$lang['domain'] = 'Đăng nhập tên miền'; +$lang['authpwdexpire'] = 'Mật khẩu của bạn sẽ hết hạn sau %d ngày, bạn nên thay đổi sớm.'; +$lang['passchangefail'] = 'Không thể thay đổi mật khẩu. Có lẽ chính sách mật khẩu chưa được đáp ứng?'; +$lang['userchangefail'] = 'Không thể thay đổi thuộc tính thành viên. Có lẽ tài khoản của bạn không có quyền thực hiện thay đổi?'; +$lang['connectfail'] = 'Không thể kết nối với máy chủ Active Directory.'; diff --git a/lib/plugins/authad/lang/vi/settings.php b/lib/plugins/authad/lang/vi/settings.php new file mode 100644 index 000000000..d0dc73dc1 --- /dev/null +++ b/lib/plugins/authad/lang/vi/settings.php @@ -0,0 +1,23 @@ +<?php + +/** + * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) + * + * @author Thien Hau <thienhausoftware@gmail.com> + */ +$lang['account_suffix'] = 'Hậu tố tài khoản của bạn. VD. <code>@my.domain.org</code>'; +$lang['base_dn'] = 'DN cơ sở của bạn. VD. <code>DC=my,DC=domain,DC=org</code>'; +$lang['domain_controllers'] = 'Một danh sách các bộ điều khiển miền được phân tách bằng dấu phẩy. VD. <code>srv1.domain.org,srv2.domain.org</code>'; +$lang['admin_username'] = 'Thành viên Active Directory đặc quyền có quyền truy cập vào tất cả dữ liệu của người dùng khác. Tùy chọn, nhưng cần thiết cho một số hành động nhất định như gửi thư đăng ký.'; +$lang['admin_password'] = 'Mật khẩu của thành viên trên.'; +$lang['sso'] = 'Nên đăng nhập một lần qua Kerberos hoặc NTLM?'; +$lang['sso_charset'] = 'Bộ ký tự máy chủ web của bạn sẽ chuyển tên người dùng Kerberos hoặc NTLM. Để trống cho UTF-8 hoặc latin-1. Yêu cầu phần mở rộng iconv.'; +$lang['real_primarygroup'] = 'Nếu nhóm chính thực sự được giải quyết thay vì giả sử "Tên miền thành viên" (chậm hơn).'; +$lang['use_ssl'] = 'Sử dụng kết nối SSL? Nếu được sử dụng, không kích hoạt TLS bên dưới.'; +$lang['use_tls'] = 'Sử dụng kết nối TLS? Nếu được sử dụng, không kích hoạt SSL ở trên.'; +$lang['debug'] = 'Hiển thị đầu ra gỡ lỗi bổ sung về lỗi?'; +$lang['expirywarn'] = 'Báo trước ngày để cảnh báo thành viên về việc hết hạn mật khẩu. 0 để vô hiệu hóa.'; +$lang['additional'] = 'Một danh sách được phân tách bằng dấu phẩy của các thuộc tính AD bổ sung để tìm nạp dữ liệu thành viên. Được sử dụng bởi một số plugin.'; +$lang['update_name'] = 'Cho phép thành viên cập nhật tên hiển thị AD?'; +$lang['update_mail'] = 'Cho phép thành viên cập nhật địa chỉ thư điện tử?'; +$lang['recursive_groups'] = 'Giải quyết các nhóm lồng nhau cho các thành viên tương ứng (chậm hơn).'; diff --git a/lib/plugins/authad/lang/zh/settings.php b/lib/plugins/authad/lang/zh/settings.php index 1ccadd318..7a0d39b64 100644 --- a/lib/plugins/authad/lang/zh/settings.php +++ b/lib/plugins/authad/lang/zh/settings.php @@ -3,6 +3,7 @@ /** * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) * + * @author HaoNan <haonan@zhuoming.info> * @author lainme <lainme993@gmail.com> * @author oott123 <ip.192.168.1.1@qq.com> * @author JellyChen <451453325@qq.com> @@ -23,3 +24,4 @@ $lang['expirywarn'] = '提前多少天警告用户密码即将到期 $lang['additional'] = '需要从用户数据中获取的额外 AD 属性的列表,以逗号分隔。用于某些插件。'; $lang['update_name'] = '允许用户更新其AD显示名称?'; $lang['update_mail'] = '是否允许用户更新他们的电子邮件地址?'; +$lang['recursive_groups'] = '将嵌套组拆分为各自的成员(较慢)'; |