VERY BROKEN
authorBen Klang <ben@alkaloid.net>
Thu, 14 Jul 2005 05:12:58 +0000 (05:12 +0000)
committerBen Klang <ben@alkaloid.net>
Thu, 14 Jul 2005 05:12:58 +0000 (05:12 +0000)
Begin to add data entry forms

git-svn-id: https://svn.alkaloid.net/gpl/shout/trunk@54 06cd67b6-e706-0410-b29e-9de616bca6e9

index.php
lib/Driver/ldap.php
lib/Shout.php
lib/User.php [new file with mode: 0644]
shout.webprj
users/index.php [new file with mode: 0644]

index 2d753d0..b377e9a 100644 (file)
--- a/index.php
+++ b/index.php
@@ -21,7 +21,7 @@ require_once SHOUT_BASE . '/lib/base.php';
 require_once SHOUT_BASE . '/lib/Shout.php';
 
 $context = Util::getFormData("context");
-$section = Util::getFormData("section");
+$section = "users";
 
 $contexts = $shout->getContexts();
 $vars = &Variables::getDefaultVariables();
index b630fb7..d0a1d90 100644 (file)
@@ -45,6 +45,11 @@ class Shout_Driver_ldap extends Shout_Driver
     function getContexts($searchfilters = SHOUT_CONTEXT_ALL,
                          $filterperms = null)
     {
+        static $entries = array();
+        if (array_key_exists($searchfilters, $entries)) {
+            return $entries[$searchfilters];
+        }
+
         if ($filterperms == null) {
             $filterperms = PERMS_SHOW|PERMS_READ;
         }
@@ -96,18 +101,18 @@ class Shout_Driver_ldap extends Shout_Driver
             " matching those search filters");
         }
 
-        $entries = array();
         $res = ldap_get_entries($this->_LDAP, $res);
         $i = 0;
+        $entries[$searchfilters] = array();
         while ($i < $res['count']) {
             $context = $res[$i]['context'][0];
             if (Shout::checkRights("shout:contexts:$context", $filterperms)) {
-                $entries[] = $context;
+                $entries[$searchfilters][] = $context;
             }
             $i++;
         }
         # return the array
-        return $entries;
+        return $entries[$searchfilters];
     }
     // }}}
 
@@ -176,6 +181,11 @@ type");
      */
     function getUsers($context)
     {
+    
+        static $entries = array();
+        if (array_key_exists($context, $entries)) {
+            return $entries[$context];
+        }
         $search = ldap_search($this->_LDAP,
             SHOUT_USERS_BRANCH.','.$this->_params['basedn'],
             '(&(objectClass='.SHOUT_USER_OBJECTCLASS.')(context='.$context.'))',
@@ -187,40 +197,40 @@ type");
             return PEAR::raiseError("Unable to search directory");
         }
         $res = ldap_get_entries($this->_LDAP, $search);
-        $entries = array();
+        $entries[$context] = array();
         $i = 0;
         while ($i < $res['count']) {
             $extension = $res[$i]['voicemailbox'][0];
-            $entries[$extension] = array();
+            $entries[$context][$extension] = array();
 
-            @$entries[$extension]['dialopts'] =
+            @$entries[$context][$extension]['dialopts'] =
                 $res[$i]['asteriskuserdialoptions'];
 
-            @$entries[$extension]['mailboxopts'] =
+            @$entries[$context][$extension]['mailboxopts'] =
                 $res[$i]['asteriskvoicemailboxoptions'];
 
-            @$entries[$extension]['mailboxpin'] =
+            @$entries[$context][$extension]['mailboxpin'] =
                 $res[$i]['voicemailboxpin'][0];
 
-            @$entries[$extension]['name'] =
+            @$entries[$context][$extension]['name'] =
                 $res[$i]['cn'][0];
 
-            @$entries[$extension]['phonenumbers'] =
+            @$entries[$context][$extension]['phonenumbers'] =
                 $res[$i]['telephonenumber'];
 
-            @$entries[$extension]['dialtimeout'] =
+            @$entries[$context][$extension]['dialtimeout'] =
                 $res[$i]['asteriskuserdialtimeout'][0];
 
-            @$entries[$extension]['email'] =
+            @$entries[$context][$extension]['email'] =
                 $res[$i]['mail'][0];
 
-            @$entries[$extension]['pageremail'] =
+            @$entries[$context][$extension]['pageremail'] =
                 $res[$i]['asteriskpager'][0];
 
             $i++;
         }
 
-        return $entries;
+        return $entries[$context];
     }
     // }}}
 
index 1ee50c9..1c97641 100644 (file)
@@ -31,8 +31,11 @@ class Shout
         if (isset($context) && isset($section) && $section == "users" &&
             Shout::checkRights("shout:contexts:$context:users",
                 PERMS_EDIT, 1)) {
-            $menu->add("#", _("Add User"), "add-user.gif", null, null,
-                "open_adduser_win('context=$context')", null);
+            $url = Horde::applicationUrl("users/index.php");
+            $url = Util::addParameter($url, array('context' => $context,
+                                                  'section' => $section,
+                                                  'action' => 'add'));
+            $menu->add($url, _("Add User"), "add-user.gif");
         }
 
         if ($returnType == 'object') {
diff --git a/lib/User.php b/lib/User.php
new file mode 100644 (file)
index 0000000..3e7552b
--- /dev/null
@@ -0,0 +1,21 @@
+<?php
+/**
+ * @package Whups
+ */
+// {{{
+class UserDetailsForm extends Horde_Form {
+
+    function UserDetailsForm(&$vars)
+    {
+        global $shout;
+
+        parent::Horde_Form($vars, _("Add User"));
+        
+        $this->preserve($vars);
+        $users = $shout->getUsers($context);
+       
+        $this->addVariable(_("Full Name"), 'name', text, true);
+        $this->addVariable(_("Extension"), 'name', int, true);
+    }
+}
+// }}}
\ No newline at end of file
index 86ec4ad..ee1ec3f 100644 (file)
@@ -9,47 +9,51 @@
     <item url="templates/" uploadstatus="2" />
     <item url="lib/" uploadstatus="2" />
     <item url="lib/Driver/" uploadstatus="2" />
-    <item modified_time="1121295100" url="lib/Driver/ldap.php" uploadstatus="2" />
-    <item modified_time="1120792108" url="lib/base.php" uploadstatus="2" />
-    <item modified_time="1120815592" url="lib/Driver.php" uploadstatus="2" />
-    <item modified_time="1121298118" url="index.php" uploadstatus="2" />
+    <item modified_time="1121313992" url="lib/Driver/ldap.php" uploadstatus="2" />
+    <item modified_time="1120589135" url="lib/base.php" uploadstatus="2" />
+    <item modified_time="1121306551" url="lib/Driver.php" uploadstatus="2" />
+    <item modified_time="1121308393" url="index.php" uploadstatus="2" />
     <uploadprofiles showtreeviews="true" defaultProfile="Shout" >
       <profile remote_host="picasso.v-office.biz" remote_port="" remote_path="/srv/vhost/users/aklang/sites/intranet.v-office.biz/shout" remote_protocol="sftp" user="aklang" name="Shout" >
         <uploadeditem upload_time="0" url="config/" />
         <uploadeditem upload_time="1120073766" url="config/conf.xml" />
         <uploadeditem upload_time="1120183942" url="contexts.php" />
-        <uploadeditem upload_time="1120648621" url="dialplan.php" />
-        <uploadeditem upload_time="1121298118" url="index.php" />
+        <uploadeditem upload_time="1120355053" url="dialplan.php" />
+        <uploadeditem upload_time="1121308393" url="index.php" />
         <uploadeditem upload_time="1120021874" url="index.php~" />
         <uploadeditem upload_time="0" url="lib/" />
-        <uploadeditem upload_time="1120815592" url="lib/Driver.php" />
+        <uploadeditem upload_time="1121306551" url="lib/Driver.php" />
         <uploadeditem upload_time="1120022560" url="lib/Driver.php~" />
         <uploadeditem upload_time="0" url="lib/Driver/" />
-        <uploadeditem upload_time="1121295100" url="lib/Driver/ldap.php" />
+        <uploadeditem upload_time="1121313992" url="lib/Driver/ldap.php" />
         <uploadeditem upload_time="1120026921" url="lib/Driver/ldap.php~" />
         <uploadeditem upload_time="1120288491" url="lib/SelectContext.php" />
-        <uploadeditem upload_time="1121298016" url="lib/Shout.php" />
-        <uploadeditem upload_time="1120812245" url="lib/System.php" />
+        <uploadeditem upload_time="1121317814" url="lib/Shout.php" />
+        <uploadeditem upload_time="1120815615" url="lib/System.php" />
+        <uploadeditem upload_time="1121316518" url="lib/User.php" />
         <uploadeditem upload_time="1120279975" url="lib/Users.php" />
-        <uploadeditem upload_time="1120792108" url="lib/base.php" />
+        <uploadeditem upload_time="1120589135" url="lib/base.php" />
         <uploadeditem upload_time="1120073766" url="lib/defines.php" />
-        <uploadeditem upload_time="1120296517" url="moh.php" />
+        <uploadeditem upload_time="1120287842" url="moh.php" />
         <uploadeditem upload_time="1120027019" url="shout.webprj" />
-        <uploadeditem upload_time="1120811068" url="system.php" />
+        <uploadeditem upload_time="1120815615" url="system.php" />
         <uploadeditem upload_time="0" url="templates/" />
-        <uploadeditem upload_time="1120158044" url="templates/common-header.inc" />
+        <uploadeditem upload_time="1120174958" url="templates/common-header.inc" />
         <uploadeditem upload_time="1120073766" url="templates/content_page" />
         <uploadeditem upload_time="0" url="templates/context/" />
-        <uploadeditem upload_time="1120169761" url="templates/context/contextline.inc" />
+        <uploadeditem upload_time="1120175005" url="templates/context/contextline.inc" />
         <uploadeditem upload_time="0" url="templates/dialplan/" />
-        <uploadeditem upload_time="1120648933" url="templates/dialplan/dialplanlist.inc" />
-        <uploadeditem upload_time="1121297521" url="templates/menu.inc" />
+        <uploadeditem upload_time="1120377494" url="templates/dialplan/dialplanlist.inc" />
+        <uploadeditem upload_time="1121306551" url="templates/menu.inc" />
         <uploadeditem upload_time="0" url="templates/users/" />
-        <uploadeditem upload_time="1121300479" url="templates/users/userlist.inc" />
+        <uploadeditem upload_time="1121306551" url="templates/users/userlist.inc" />
         <uploadeditem upload_time="0" url="themes/" />
         <uploadeditem upload_time="0" url="themes/graphics/" />
-        <uploadeditem upload_time="1121295816" url="themes/graphics/add-user.gif" />
-        <uploadeditem upload_time="1121298200" url="users.php" />
+        <uploadeditem upload_time="1121300828" url="themes/graphics/add-user.gif" />
+        <uploadeditem upload_time="1121306550" url="users.php" />
+        <uploadeditem upload_time="0" url="users/" />
+        <uploadeditem upload_time="1121317899" url="users/add.php" />
+        <uploadeditem upload_time="1121317930" url="users/index.php" />
       </profile>
     </uploadprofiles>
     <debuggers>
     <defaultDTD>-//w3c//dtd xhtml 1.0 strict//en</defaultDTD>
     <item modified_time="1120073766" url="config/conf.xml" uploadstatus="1" />
     <item url="config/" uploadstatus="1" />
-    <item modified_time="1121298016" url="lib/Shout.php" uploadstatus="1" />
-    <item modified_time="1120158044" url="templates/common-header.inc" uploadstatus="1" />
-    <item modified_time="1121297521" url="templates/menu.inc" uploadstatus="1" />
-    <item modified_time="1121298200" url="users.php" uploadstatus="1" />
+    <item modified_time="1121317814" url="lib/Shout.php" uploadstatus="1" />
+    <item modified_time="1120174958" url="templates/common-header.inc" uploadstatus="1" />
+    <item modified_time="1121306551" url="templates/menu.inc" uploadstatus="1" />
+    <item modified_time="1121306550" url="users.php" uploadstatus="1" />
     <item url="templates/context/" uploadstatus="1" />
-    <item modified_time="1120169761" url="templates/context/contextline.inc" uploadstatus="1" />
-    <item modified_time="1120296517" url="moh.php" uploadstatus="1" />
+    <item modified_time="1120175005" url="templates/context/contextline.inc" uploadstatus="1" />
+    <item modified_time="1120287842" url="moh.php" uploadstatus="1" />
     <item url="templates/users/" uploadstatus="1" />
-    <item modified_time="1121300479" url="templates/users/userlist.inc" uploadstatus="1" />
-    <item modified_time="1120648621" url="dialplan.php" uploadstatus="1" />
-    <item modified_time="1120648933" url="templates/dialplan/dialplanlist.inc" uploadstatus="1" />
+    <item modified_time="1121306551" url="templates/users/userlist.inc" uploadstatus="1" />
+    <item modified_time="1120355053" url="dialplan.php" uploadstatus="1" />
+    <item modified_time="1120377494" url="templates/dialplan/dialplanlist.inc" uploadstatus="1" />
     <item url="templates/dialplan/" uploadstatus="1" />
-    <item modified_time="1120811068" url="system.php" uploadstatus="1" />
-    <item modified_time="1120812245" url="lib/System.php" uploadstatus="1" />
+    <item modified_time="1120815615" url="system.php" uploadstatus="1" />
+    <item modified_time="1120815615" url="lib/System.php" uploadstatus="1" />
     <author>Ben Klang</author>
     <email>ben@alkaloid.net</email>
     <debuggerclient>Gubed</debuggerclient>
       <mailinglist address="" />
     </teamdata>
     <events/>
-    <item url="themes/" />
-    <item url="themes/graphics/" />
-    <item modified_time="1121295816" url="themes/graphics/add-user.gif" />
+    <item url="themes/" uploadstatus="1" />
+    <item url="themes/graphics/" uploadstatus="1" />
+    <item modified_time="1121300828" url="themes/graphics/add-user.gif" uploadstatus="1" />
+    <item modified_time="1121317930" url="users/index.php" />
+    <item url="users/" />
+    <item modified_time="1121316518" url="lib/User.php" />
+    <item modified_time="1121317899" url="users/add.php" />
     <treestatus>
       <openfolder url="config" />
       <openfolder url="lib" />
       <openfolder url="templates/users" />
       <openfolder url="themes" />
       <openfolder url="themes/graphics" />
+      <openfolder url="users" />
     </treestatus>
   </project>
 </webproject>
diff --git a/users/index.php b/users/index.php
new file mode 100644 (file)
index 0000000..627ae37
--- /dev/null
@@ -0,0 +1,45 @@
+<?php
+/**
+ * $Horde: shout/users/index.php,v 0.1 2005/07/13 10:01:01 ben Exp $
+ *
+ * Copyright 2005 Ben Klang <ben@alkaloid.net>
+ *
+ * See the enclosed file COPYING for license information (GPL). If you
+ * did not receive this file, see http://www.fsf.org/copyleft/gpl.html.
+ */
+
+@define('SHOUT_BASE', dirname(__FILE__) . "/..");
+$shout_configured = (@is_readable(SHOUT_BASE . '/config/conf.php'));# &&
+    #@is_readable(SHOUT_BASE . '/config/prefs.php'));
+if (!$shout_configured) {
+    require SHOUT_BASE . '/../lib/Test.php';
+    Horde_Test::configFilesMissing('Shout', SHOUT_BASE,
+    array('conf.php', 'prefs.php'));
+}
+
+require_once SHOUT_BASE . '/lib/base.php';
+require_once SHOUT_BASE . '/lib/Shout.php';
+
+$context = Util::getFormData("context");
+$section = "users";
+$action = Util::getFormData("action");
+
+$contexts = $shout->getContexts();
+$vars = &Variables::getDefaultVariables();
+
+if (!isset($context)) {#FIXME || !Shout::checkContext()) {
+    $url = Horde::applicationUrl("/shout/index.php");
+    header("Location: $url");
+    exit(0);
+}
+
+$tabs = &Shout::getTabs($context, $vars);
+$tabs->preserve('context', $context);
+
+switch ($action) {
+    case "add":
+    case "edit":
+    case "delete":
+        require SHOUT_BASE . "/users/$action.php";
+        break;
+}
\ No newline at end of file