]> source.dussan.org Git - nextcloud-server.git/commitdiff
- provide a setting for the ldap user display name instead of hardcoded value 'uid...
authorMarkus Kalkbrenner <markus.kalkbrenner@bio.logis.de>
Thu, 17 Nov 2011 15:03:42 +0000 (16:03 +0100)
committerRobin Appelman <icewind1991@gmail.com>
Fri, 18 Nov 2011 13:08:30 +0000 (14:08 +0100)
- provide a sorted list of ldap users
- replaced double quotes by single quotes and spaces by tabs according to coding standards
- replaced hardcoded strings in template by translatable ones

apps/user_ldap/appinfo/app.php
apps/user_ldap/settings.php
apps/user_ldap/templates/settings.php
apps/user_ldap/user_ldap.php

index 7906241f79b819d9222937be58ee1aa0c15fe119..3261708f590404563c5184104951fa55f32aea86 100644 (file)
@@ -26,7 +26,10 @@ require_once('apps/user_ldap/user_ldap.php');
 OC_APP::registerAdmin('user_ldap','settings');
 
 // define LDAP_DEFAULT_PORT
-define("OC_USER_BACKEND_LDAP_DEFAULT_PORT", 389);
+define('OC_USER_BACKEND_LDAP_DEFAULT_PORT', 389);
+
+// define OC_USER_BACKEND_LDAP_DEFAULT_DISPLAY_NAME
+define('OC_USER_BACKEND_LDAP_DEFAULT_DISPLAY_NAME', 'uid');
 
 // register user backend
 OC_User::useBackend( "LDAP" );
index b922ac99f988617c0ea1f15a3234315a68e5c65b..e61d82bf8beacd64cd1d72e904283e5ed9968402 100644 (file)
@@ -20,7 +20,7 @@
  * License along with this library.  If not, see <http://www.gnu.org/licenses/>.
  *
  */
-$params = array('ldap_host', 'ldap_port', 'ldap_dn', 'ldap_password', 'ldap_base', 'ldap_filter', 'ldap_tls');
+$params = array('ldap_host', 'ldap_port', 'ldap_dn', 'ldap_password', 'ldap_base', 'ldap_filter', 'ldap_display_name', 'ldap_tls');
 
 foreach($params as $param){
        if(isset($_POST[$param])){
@@ -42,4 +42,7 @@ foreach($params as $param){
 // ldap_port has a default value
 $tmpl->assign( 'ldap_port', OC_Appconfig::getValue('user_ldap', 'ldap_port', OC_USER_BACKEND_LDAP_DEFAULT_PORT));
 
+// ldap_display_name has a default value
+$tmpl->assign( 'ldap_display_name', OC_Appconfig::getValue('user_ldap', 'ldap_display_name', OC_USER_BACKEND_LDAP_DEFAULT_DISPLAY_NAME));
+
 return $tmpl->fetchPage();
index 374f12417416d3da5f52062ac2e2c31a5ca7caab..8a879fa2466e638ed2edf4385b3cbafef8306d08 100644 (file)
@@ -1,13 +1,14 @@
 <form id="ldap" action="#" method="post">
        <fieldset class="personalblock">
                <legend><strong>LDAP</strong></legend>
-               <p><label for="ldap_host">Host<input type="text" id="ldap_host" name="ldap_host" value="<?php echo $_['ldap_host']; ?>"></label>
-               <label for="ldap_port">Port</label><input type="text" id="ldap_port" name="ldap_port" value="<?php echo $_['ldap_port']; ?>" /></p>
-               <p><label for="ldap_dn">Name</label><input type="text" id="ldap_dn" name="ldap_dn" value="<?php echo $_['ldap_dn']; ?>" />
-               <label for="ldap_password">Password</label><input type="password" id="ldap_password" name="ldap_password" value="<?php echo $_['ldap_password']; ?>" />
-               Leave both empty for anonymous bind for search, then bind with users credentials.</p>
-               <p><label for="ldap_base">Base</label><input type="text" id="ldap_base" name="ldap_base" value="<?php echo $_['ldap_base']; ?>" />
-               <label for="ldap_filter">Filter (use %uid placeholder)</label><input type="text" id="ldap_filter" name="ldap_filter" value="<?php echo $_['ldap_filter']; ?>" /></p>
+               <p><label for="ldap_host"><?php echo $l->t('Host');?><input type="text" id="ldap_host" name="ldap_host" value="<?php echo $_['ldap_host']; ?>"></label>
+               <label for="ldap_port"><?php echo $l->t('Port');?></label><input type="text" id="ldap_port" name="ldap_port" value="<?php echo $_['ldap_port']; ?>" /></p>
+               <p><label for="ldap_dn"><?php echo $l->t('Name');?></label><input type="text" id="ldap_dn" name="ldap_dn" value="<?php echo $_['ldap_dn']; ?>" />
+               <label for="ldap_password"><?php echo $l->t('Password');?></label><input type="password" id="ldap_password" name="ldap_password" value="<?php echo $_['ldap_password']; ?>" />
+               <?php echo $l->t('Leave both empty for anonymous bind for search, then bind with users credentials.');?></p>
+               <p><label for="ldap_base"><?php echo $l->t('Base');?></label><input type="text" id="ldap_base" name="ldap_base" value="<?php echo $_['ldap_base']; ?>" />
+               <label for="ldap_filter"><?php echo $l->t('Filter (use %uid placeholder)');?></label><input type="text" id="ldap_filter" name="ldap_filter" value="<?php echo $_['ldap_filter']; ?>" /></p>
+               <p><label for="ldap_display_name"><?php echo $l->t('Display Name Field');?></label><input type="text" id="ldap_display_name" name="ldap_display_name" value="<?php echo $_['ldap_display_name']; ?>" /></p>
                <p><input type="checkbox" id="ldap_tls" name="ldap_tls" value="1"<?php if ($_['ldap_tls']) echo ' checked'; ?>><label for="ldap_tls"><?php echo $l->t('Use TLS');?></label></p>
                <input type="submit" value="Save" />
        </fieldset>
index dd831f57aae5105b36300170709677345f746819..8557a7fde50c05dbe2f3dda884d270905b95022c 100644 (file)
@@ -34,6 +34,7 @@ class OC_USER_LDAP extends OC_User_Backend {
        protected $ldap_base;
        protected $ldap_filter;
        protected $ldap_tls;
+       protected $ldap_display_name;
 
        function __construct() {
                $this->ldap_host = OC_Appconfig::getValue('user_ldap', 'ldap_host','');
@@ -43,12 +44,14 @@ class OC_USER_LDAP extends OC_User_Backend {
                $this->ldap_base = OC_Appconfig::getValue('user_ldap', 'ldap_base','');
                $this->ldap_filter = OC_Appconfig::getValue('user_ldap', 'ldap_filter','');
                $this->ldap_tls = OC_Appconfig::getValue('user_ldap', 'ldap_tls', 0);
+               $this->ldap_display_name = OC_Appconfig::getValue('user_ldap', 'ldap_display_name', OC_USER_BACKEND_LDAP_DEFAULT_DISPLAY_NAME);
 
                if( !empty($this->ldap_host)
                        && !empty($this->ldap_port)
                        && ((!empty($this->ldap_dn) && !empty($this->ldap_password)) || (empty($this->ldap_dn) && empty($this->ldap_password)))
                        && !empty($this->ldap_base)
                        && !empty($this->ldap_filter)
+                       && !empty($this->ldap_display_name)
                )
                {
                        $this->configured = true;
@@ -90,15 +93,16 @@ class OC_USER_LDAP extends OC_User_Backend {
                        return false;
 
                // get dn
-               $filter = str_replace("%uid", $uid, $this->ldap_filter);
+               $filter = str_replace('%uid', $uid, $this->ldap_filter);
                $sr = ldap_search( $this->getDs(), $this->ldap_base, $filter );
                $entries = ldap_get_entries( $this->getDs(), $sr );
 
-               if( $entries["count"] == 0 )
+               if( $entries['count'] == 0 )
                        return false;
 
-               return $entries[0]["dn"];
+               return $entries[0]['dn'];
        }
+
        public function checkPassword( $uid, $password ) {
                if(!$this->configured){
                        return false;
@@ -131,22 +135,22 @@ class OC_USER_LDAP extends OC_User_Backend {
                        return false;
        
                // get users
-               $filter = "objectClass=person";
+               $filter = 'objectClass=person';
                $sr = ldap_search( $this->getDs(), $this->ldap_base, $filter );
                $entries = ldap_get_entries( $this->getDs(), $sr );
-       
-               if( $entries["count"] == 0 )
+               if( $entries['count'] == 0 )
                        return false;
                else {
                        $users = array();
                        foreach($entries as $row) {
-                               if(isset($row['uid'])) {
-                                       $users[] = $row['uid'][0];
+                               if(isset($row[$this->ldap_display_name])) {
+                                       $users[] = $row[$this->ldap_display_name][0];
                                }
                        }
+                       // TODO language specific sorting of user names
+                       sort($users);
+                       return $users;
                }
-       
-               return $users;
        }
 
 }