Adding UID support
authorBen Klang <ben@alkaloid.net>
Sat, 28 Jan 2006 23:59:58 +0000 (23:59 +0000)
committerBen Klang <ben@alkaloid.net>
Sat, 28 Jan 2006 23:59:58 +0000 (23:59 +0000)
git-svn-id: https://svn.alkaloid.net/gpl/shout/trunk@277 06cd67b6-e706-0410-b29e-9de616bca6e9

andrew.session
andrew.webprj
lib/Driver/ldap.php
lib/User.php
usermgr/save.php

index 34c2b8b..2f88da2 100644 (file)
       </profile>
       <profile remote_host="dev04.alkaloid.net" remote_port="22" remote_path="/srv/vhost/sites/shout.dev04.alkaloid.net/shout" remote_protocol="sftp" user="bklang" name="Shout Dev" >
         <uploadeditem upload_time="0" url="config/" />
-        <uploadeditem upload_time="1138465344" url="config/applist.xml.dist" />
-        <uploadeditem upload_time="1138318762" url="config/conf.xml" />
-        <uploadeditem upload_time="1138318762" url="config/defines.php.dist" />
-        <uploadeditem upload_time="1138465344" url="dialplan.php" />
+        <uploadeditem upload_time="1138396403" url="config/applist.xml.dist" />
+        <uploadeditem upload_time="1138318792" url="config/conf.xml" />
+        <uploadeditem upload_time="1138318792" url="config/defines.php.dist" />
+        <uploadeditem upload_time="1138465371" url="dialplan.php" />
         <uploadeditem upload_time="0" url="dialplan/" />
-        <uploadeditem upload_time="1134254291" url="dialplan/edit.php" />
-        <uploadeditem upload_time="1138479849" url="index.php" />
+        <uploadeditem upload_time="1134075506" url="dialplan/edit.php" />
+        <uploadeditem upload_time="1138483266" url="index.php" />
         <uploadeditem upload_time="0" url="lib/" />
-        <uploadeditem upload_time="1134254292" url="lib/Dialplan.php" />
-        <uploadeditem upload_time="1138318762" url="lib/Driver.php" />
+        <uploadeditem upload_time="1134075506" url="lib/Dialplan.php" />
+        <uploadeditem upload_time="1138318792" url="lib/Driver.php" />
         <uploadeditem upload_time="0" url="lib/Driver/" />
-        <uploadeditem upload_time="1138482665" url="lib/Driver/ldap.php" />
-        <uploadeditem upload_time="1138318762" url="lib/Shout.php" />
+        <uploadeditem upload_time="1138487546" url="lib/Driver/ldap.php" />
+        <uploadeditem upload_time="1138318792" url="lib/Shout.php" />
         <uploadeditem upload_time="1134075507" url="lib/System.php" />
-        <uploadeditem upload_time="1138481293" url="lib/User.php" />
-        <uploadeditem upload_time="1138468753" url="lib/api.php" />
-        <uploadeditem upload_time="1138468370" url="lib/base.php" />
+        <uploadeditem upload_time="1138486360" url="lib/User.php" />
+        <uploadeditem upload_time="1138483266" url="lib/api.php" />
+        <uploadeditem upload_time="1138483266" url="lib/base.php" />
         <uploadeditem upload_time="1134075507" url="lib/defines.php" />
-        <uploadeditem upload_time="1137381879" url="lib/version.php" />
+        <uploadeditem upload_time="1137381911" url="lib/version.php" />
         <uploadeditem upload_time="0" url="main/" />
         <uploadeditem upload_time="1134254292" url="main/dialplan.php" />
         <uploadeditem upload_time="1134254291" url="main/moh.php" />
         <uploadeditem upload_time="1134075507" url="main/system.php" />
         <uploadeditem upload_time="1134254291" url="main/users.php" />
-        <uploadeditem upload_time="1138318762" url="moh.php" />
-        <uploadeditem upload_time="1138318762" url="security.php" />
+        <uploadeditem upload_time="1138318792" url="moh.php" />
+        <uploadeditem upload_time="1138318792" url="security.php" />
         <uploadeditem upload_time="0" url="templates/" />
-        <uploadeditem upload_time="1138318762" url="templates/common-header.inc" />
-        <uploadeditem upload_time="1134254292" url="templates/content_page" />
+        <uploadeditem upload_time="1138311990" url="templates/common-header.inc" />
+        <uploadeditem upload_time="1134075418" url="templates/content_page" />
         <uploadeditem upload_time="0" url="templates/context/" />
-        <uploadeditem upload_time="1134254292" url="templates/context/contextline.inc" />
+        <uploadeditem upload_time="1134075418" url="templates/context/contextline.inc" />
         <uploadeditem upload_time="0" url="templates/dialplan/" />
         <uploadeditem upload_time="1131723538" url="templates/dialplan/contexttree.inc" />
-        <uploadeditem upload_time="1134254292" url="templates/dialplan/dialplanlist.inc" />
+        <uploadeditem upload_time="1134075418" url="templates/dialplan/dialplanlist.inc" />
         <uploadeditem upload_time="1131767776" url="templates/dialplan/extensiondetail.inc" />
-        <uploadeditem upload_time="1134254292" url="templates/dialplan/manager.inc" />
-        <uploadeditem upload_time="1134254292" url="templates/dialplan/priority-form-begin.inc" />
-        <uploadeditem upload_time="1134254292" url="templates/dialplan/priority-form-end.inc" />
-        <uploadeditem upload_time="1134254292" url="templates/dialplan/priority-form-line.inc" />
+        <uploadeditem upload_time="1134075418" url="templates/dialplan/manager.inc" />
+        <uploadeditem upload_time="1134075418" url="templates/dialplan/priority-form-begin.inc" />
+        <uploadeditem upload_time="1134075418" url="templates/dialplan/priority-form-end.inc" />
+        <uploadeditem upload_time="1134075418" url="templates/dialplan/priority-form-line.inc" />
         <uploadeditem upload_time="0" url="templates/javascript/" />
-        <uploadeditem upload_time="1134254292" url="templates/javascript/dialplan.js" />
-        <uploadeditem upload_time="1134254292" url="templates/menu.inc" />
-        <uploadeditem upload_time="1134254292" url="templates/table-limiter-begin.inc" />
-        <uploadeditem upload_time="1134254292" url="templates/table-limiter-end.inc" />
+        <uploadeditem upload_time="1134075507" url="templates/javascript/dialplan.js" />
+        <uploadeditem upload_time="1134075418" url="templates/menu.inc" />
+        <uploadeditem upload_time="1134075418" url="templates/table-limiter-begin.inc" />
+        <uploadeditem upload_time="1134075418" url="templates/table-limiter-end.inc" />
         <uploadeditem upload_time="0" url="templates/users/" />
-        <uploadeditem upload_time="1138479954" url="templates/users/userlist.inc" />
+        <uploadeditem upload_time="1138483266" url="templates/users/userlist.inc" />
         <uploadeditem upload_time="0" url="themes/" />
         <uploadeditem upload_time="0" url="themes/graphics/" />
-        <uploadeditem upload_time="1134254292" url="themes/graphics/add-extension.gif" />
-        <uploadeditem upload_time="1134254292" url="themes/graphics/add-user.gif" />
-        <uploadeditem upload_time="1134254292" url="themes/screen.css" />
-        <uploadeditem upload_time="1138479877" url="usermgr.php" />
+        <uploadeditem upload_time="1134075418" url="themes/graphics/add-extension.gif" />
+        <uploadeditem upload_time="1134075418" url="themes/graphics/add-user.gif" />
+        <uploadeditem upload_time="1134075418" url="themes/screen.css" />
+        <uploadeditem upload_time="1138342874" url="usermgr.php" />
         <uploadeditem upload_time="0" url="usermgr/" />
-        <uploadeditem upload_time="1138317244" url="usermgr/delete.php" />
-        <uploadeditem upload_time="1138479479" url="usermgr/edit.php" />
-        <uploadeditem upload_time="1138317244" url="usermgr/list.php" />
-        <uploadeditem upload_time="1138483239" url="usermgr/save.php" />
+        <uploadeditem upload_time="1138317269" url="usermgr/delete.php" />
+        <uploadeditem upload_time="1138483266" url="usermgr/edit.php" />
+        <uploadeditem upload_time="1138317269" url="usermgr/list.php" />
+        <uploadeditem upload_time="1138486399" url="usermgr/save.php" />
         <uploadeditem upload_time="1134254292" url="users.php" />
         <uploadeditem upload_time="0" url="users/" />
         <uploadeditem upload_time="1138311486" url="users/add.php" />
index 6532fc1..84c0984 100644 (file)
@@ -4,39 +4,39 @@
     <upload/>
     <defaultDTD>-//w3c//dtd xhtml 1.0 strict//en</defaultDTD>
     <item url="config/" uploadstatus="1" />
-    <item modified_time="1138318762" url="config/conf.xml" uploadstatus="1" />
+    <item modified_time="1138318792" url="config/conf.xml" uploadstatus="1" />
     <item url="dialplan/" uploadstatus="1" />
-    <item modified_time="1134254291" url="dialplan/edit.php" uploadstatus="1" />
+    <item modified_time="1134075506" url="dialplan/edit.php" uploadstatus="1" />
     <item url="lib/" uploadstatus="1" />
     <item url="lib/Driver/" uploadstatus="1" />
-    <item modified_time="1138482665" url="lib/Driver/ldap.php" uploadstatus="1" />
-    <item modified_time="1138468370" url="lib/base.php" uploadstatus="1" />
-    <item modified_time="1134254292" url="lib/Dialplan.php" uploadstatus="1" />
-    <item modified_time="1138318762" url="lib/Driver.php" uploadstatus="1" />
-    <item modified_time="1138318762" url="lib/Shout.php" uploadstatus="1" />
-    <item modified_time="1138481293" url="lib/User.php" uploadstatus="1" />
+    <item modified_time="1138487546" url="lib/Driver/ldap.php" uploadstatus="1" />
+    <item modified_time="1138483266" url="lib/base.php" uploadstatus="1" />
+    <item modified_time="1134075506" url="lib/Dialplan.php" uploadstatus="1" />
+    <item modified_time="1138318792" url="lib/Driver.php" uploadstatus="1" />
+    <item modified_time="1138318792" url="lib/Shout.php" uploadstatus="1" />
+    <item modified_time="1138486360" url="lib/User.php" uploadstatus="1" />
     <item url="templates/" uploadstatus="1" />
     <item url="templates/context/" uploadstatus="1" />
-    <item modified_time="1134254292" url="templates/context/contextline.inc" uploadstatus="1" />
+    <item modified_time="1134075418" url="templates/context/contextline.inc" uploadstatus="1" />
     <item url="templates/dialplan/" uploadstatus="1" />
-    <item modified_time="1134254292" url="templates/dialplan/dialplanlist.inc" uploadstatus="1" />
-    <item modified_time="1134254292" url="templates/dialplan/priority-form-begin.inc" uploadstatus="1" />
-    <item modified_time="1134254292" url="templates/dialplan/priority-form-end.inc" uploadstatus="1" />
-    <item modified_time="1134254292" url="templates/dialplan/priority-form-line.inc" uploadstatus="1" />
+    <item modified_time="1134075418" url="templates/dialplan/dialplanlist.inc" uploadstatus="1" />
+    <item modified_time="1134075418" url="templates/dialplan/priority-form-begin.inc" uploadstatus="1" />
+    <item modified_time="1134075418" url="templates/dialplan/priority-form-end.inc" uploadstatus="1" />
+    <item modified_time="1134075418" url="templates/dialplan/priority-form-line.inc" uploadstatus="1" />
     <item url="templates/users/" uploadstatus="1" />
-    <item modified_time="1138479954" url="templates/users/userlist.inc" uploadstatus="1" />
-    <item modified_time="1138318762" url="templates/common-header.inc" uploadstatus="1" />
-    <item modified_time="1134254292" url="templates/content_page" uploadstatus="1" />
-    <item modified_time="1134254292" url="templates/menu.inc" uploadstatus="1" />
-    <item modified_time="1134254292" url="templates/table-limiter-begin.inc" uploadstatus="1" />
-    <item modified_time="1134254292" url="templates/table-limiter-end.inc" uploadstatus="1" />
+    <item modified_time="1138483266" url="templates/users/userlist.inc" uploadstatus="1" />
+    <item modified_time="1138311990" url="templates/common-header.inc" uploadstatus="1" />
+    <item modified_time="1134075418" url="templates/content_page" uploadstatus="1" />
+    <item modified_time="1134075418" url="templates/menu.inc" uploadstatus="1" />
+    <item modified_time="1134075418" url="templates/table-limiter-begin.inc" uploadstatus="1" />
+    <item modified_time="1134075418" url="templates/table-limiter-end.inc" uploadstatus="1" />
     <item url="themes/" uploadstatus="1" />
     <item url="themes/graphics/" uploadstatus="1" />
-    <item modified_time="1134254292" url="themes/graphics/add-extension.gif" uploadstatus="1" />
-    <item modified_time="1134254292" url="themes/graphics/add-user.gif" uploadstatus="1" />
-    <item modified_time="1134254292" url="themes/screen.css" uploadstatus="1" />
-    <item modified_time="1138465344" url="dialplan.php" uploadstatus="1" />
-    <item modified_time="1138479849" url="index.php" uploadstatus="1" />
+    <item modified_time="1134075418" url="themes/graphics/add-extension.gif" uploadstatus="1" />
+    <item modified_time="1134075418" url="themes/graphics/add-user.gif" uploadstatus="1" />
+    <item modified_time="1134075418" url="themes/screen.css" uploadstatus="1" />
+    <item modified_time="1138465371" url="dialplan.php" uploadstatus="1" />
+    <item modified_time="1138483266" url="index.php" uploadstatus="1" />
     <item url="" uploadstatus="1" />
     <uploadprofiles showtreeviews="true" defaultProfile="Shout" >
       <profile remote_host="" remote_port="" remote_path="" remote_protocol="ftp" user="" name="@" />
     </uploadprofiles>
     <templates>templates/</templates>
     <toolbars>toolbars/</toolbars>
-    <item modified_time="1138468753" url="lib/api.php" uploadstatus="1" />
-    <item modified_time="1138318762" url="security.php" uploadstatus="1" />
+    <item modified_time="1138483266" url="lib/api.php" uploadstatus="1" />
+    <item modified_time="1138318792" url="security.php" uploadstatus="1" />
     <item url="templates/javascript/" uploadstatus="1" />
-    <item modified_time="1134254292" url="templates/javascript/dialplan.js" uploadstatus="1" />
-    <item modified_time="1134254292" url="templates/dialplan/manager.inc" uploadstatus="1" />
+    <item modified_time="1134075507" url="templates/javascript/dialplan.js" uploadstatus="1" />
+    <item modified_time="1134075418" url="templates/dialplan/manager.inc" uploadstatus="1" />
     <treestatus>
       <openfolder url="lib" />
       <openfolder url="lib/Driver" />
       <mailinglist address="" />
     </teamdata>
     <events/>
-    <item modified_time="1137381879" url="lib/version.php" uploadstatus="1" />
-    <item modified_time="1138318762" url="moh.php" uploadstatus="1" />
-    <item modified_time="1138479877" url="usermgr.php" uploadstatus="1" />
-    <item modified_time="1138318762" url="config/defines.php.dist" uploadstatus="1" />
+    <item modified_time="1137381911" url="lib/version.php" uploadstatus="1" />
+    <item modified_time="1138318792" url="moh.php" uploadstatus="1" />
+    <item modified_time="1138342874" url="usermgr.php" uploadstatus="1" />
+    <item modified_time="1138318792" url="config/defines.php.dist" uploadstatus="1" />
     <item url="usermgr/" uploadstatus="1" />
-    <item modified_time="1138479479" url="usermgr/edit.php" uploadstatus="1" />
-    <item modified_time="1138317244" url="usermgr/list.php" uploadstatus="1" />
-    <item modified_time="1138483239" url="usermgr/save.php" uploadstatus="1" />
-    <item modified_time="1138317244" url="usermgr/delete.php" uploadstatus="1" />
-    <item modified_time="1138465344" url="config/applist.xml.dist" uploadstatus="1" />
+    <item modified_time="1138483266" url="usermgr/edit.php" uploadstatus="1" />
+    <item modified_time="1138317269" url="usermgr/list.php" uploadstatus="1" />
+    <item modified_time="1138486399" url="usermgr/save.php" uploadstatus="1" />
+    <item modified_time="1138317269" url="usermgr/delete.php" uploadstatus="1" />
+    <item modified_time="1138396403" url="config/applist.xml.dist" uploadstatus="1" />
   </project>
 </webproject>
index 7a7a20c..98afe2c 100644 (file)
@@ -282,7 +282,10 @@ type");
         $i = 0;
         while ($i < $res['count']) {
             $extension = $res[$i]['voicemailbox'][0];
+            $uid = md5($res['dn']);
+            $entries[$context][$uid] = $extension;
             $entries[$context][$extension] = array();
+            $entries[$context][$extension]['uid'] = $uid;
 
             $j = 0;
             $entries[$context][$extension]['dialopts'] = array();
@@ -714,7 +717,7 @@ for $context"));
 //         $domain = $contexts[$context]['domain'];
 
         # Check to ensure the extension is unique within this context
-        $filter = '(&(objectClass=asteriskVoiceMailbox)(context='.$context.'))';
+        $filter = "(&(objectClass=asteriskVoiceMailbox)(context=$context))";
         $reqattrs = array('dn', $ldapKey);
         $res = @ldap_search($this->_LDAP,
             SHOUT_USERS_BRANCH . ',' . $this->_params['basedn'],
@@ -743,10 +746,10 @@ for $context"));
         }
 
         $validusers = &$this->getUsers($context);
-        if (!isset($validusers[$extension])) {
+        if (!isset($validusers[$userdetails['uid']])) {
             # Test to see if we're modifying an existing user that has
             # no telephone system objectClasses and update that object/user
-            $rdn = "$ldapKey=".$userdetails[$appKey].',';
+            $rdn = $ldapKey.'='.$userdetails[$appKey].',';
             $branch = SHOUT_USERS_BRANCH.','.$this->_params['basedn'];
 
             # This test is something of a hack.  I want a cheap way to check
@@ -808,7 +811,7 @@ for $context"));
                 if (is_a($limits, "PEAR_Error")) {
                     return $limits;
                 }
-                if (count($validusers) >= $limits['asteriskusers']) {
+                if (count($validusers) >= $limits['asteriskmaxusers']) {
                     return PEAR::raiseError('Maximum number of users reached.');
                 }
 
@@ -819,6 +822,10 @@ for $context"));
                 }
 
                 return true;
+            } elseif (is_a($res, 'PEAR_Error')) {
+                # Some kind of internal error; not even sure if this is a
+                # possible outcome or not but I'll play it safe.
+                return $res;
             }
         }
 
index 6bf9572..91c7f67 100644 (file)
@@ -31,6 +31,7 @@ class UserDetailsForm extends Horde_Form {
                 $notification->push($limits);
             }
             $formtitle = "Edit User";
+            $this->addHidden('', 'uid', 'text,' true);
         } else {
             $limits = &$shout->getLimits($context);
             if (is_a($limits, 'PEAR_Error')) {
@@ -93,8 +94,9 @@ class UserDetailsForm extends Horde_Form {
     #) [mailboxpin] => 1234 [name] => Ricardo Paul [phonenumbers] => Array ( )
     #[dialtimeout] => 30 [email] => ricardo.paul@v-office.biz [pageremail] => )
         $vars->set('name', $userdetails['name']);
-        $vars->set('email', @$userdetails['email']);
+        $vars->set('email', $userdetails['email']);
         $vars->set('pin', $userdetails['mailboxpin']);
+        $vars->set('uid', $userdetails['uid']);
         $vars->set('newextension', $vars->get('extension'));
 
         $i = 1;
index 0ea0338..d91101b 100644 (file)
@@ -34,11 +34,13 @@ if (!$FormValid || !$Form->isSubmitted()) {
 
     $limits = $shout->getLimits($context, $extension);
 
+    # FIXME: Input Validation (Text::??)
     $userdetails = array(
         "newextension" => $vars->get('newextension'),
         "name" => $vars->get('name'),
         "pin" => $vars->get('pin'),
         "email" => $vars->get('email'),
+        "uid" => $vars->get('uid'),
     );
 
     $i = 1;
@@ -62,7 +64,6 @@ if (!$FormValid || !$Form->isSubmitted()) {
         $userdetails['dialopts'][] = 'e';
     }
     $res = $shout->saveUser($context, $extension, $userdetails);
-    $res = $shout->saveUser($context, $extension, $userdetails);
     if (is_a($res, 'PEAR_Error')) {
         $notification->push($res);
     } else {