$extension = $res[$i]['voicemailbox'][0];
$entries[$context][$extension] = array();
- @$entries[$context][$extension]['dialopts'] =
- $res[$i]['asteriskuserdialoptions'];
+ $j = 0;
+ $entries[$context][$extension]['dialopts'] = array();
+ while ($j < @$res[$i]['asteriskuserdialoptions']['count']) {
+ $entries[$context][$extension]['dialopts'][] =
+ $res[$i]['asteriskuserdialoptions'][$j];
+ $j++;
+ }
- @$entries[$context][$extension]['mailboxopts'] =
- $res[$i]['asteriskvoicemailboxoptions'];
+ $j = 0;
+ $entries[$context][$extension]['mailboxopts'] = array();
+ while ($j < @$res[$i]['asteriskvoicemailboxoptions']['count']) {
+ $entries[$context][$extension]['mailboxopts'][] =
+ $res[$i]['asteriskvoicemailboxoptions'][$j];
+ $j++;
+ }
- @$entries[$context][$extension]['mailboxpin'] =
+ $entries[$context][$extension]['mailboxpin'] =
$res[$i]['voicemailboxpin'][0];
@$entries[$context][$extension]['name'] =
$res[$i]['cn'][0];
- @$entries[$context][$extension]['phonenumbers'] =
- $res[$i]['telephonenumber'];
+ $j = 0;
+ $entries[$context][$extension]['phonenumbers'] = array();
+ while ($j < @$res[$i]['telephonenumber']['count']) {
+ $entries[$context][$extension]['phonenumbers'][] =
+ $res[$i]['telephonenumber'][$j];
+ $j++;
+ }
+ # FIXME Do some sanity checking here. Also set a default?
@$entries[$context][$extension]['dialtimeout'] =
$res[$i]['asteriskuserdialtimeout'][0];
*/
function getMenu($returnType = 'object')
{
- global $conf, $context, $section;
+ global $conf, $context, $section, $action;
require_once 'Horde/Menu.php';
if (isset($context) && isset($section) && $section == "users" &&
Shout::checkRights("shout:contexts:$context:users",
PERMS_EDIT, 1)) {
- $url = Horde::applicationUrl("users/index.php");
+ $url = Horde::applicationUrl("users.php");
$url = Util::addParameter($url, array('context' => $context,
'section' => $section,
'action' => 'add'));
- $menu->add($url, _("Add User"), "add-user.gif");
+
+ # Goofy hack to make the icon make a little sense
+ # when editing/deleting users
+ if (!isset($action)) {
+ $icontitle = "Add";
+ } else {
+ $icontitle = $action;
+ $icontitle[0] = strtoupper($action[0]);
+ }
+ # End goofy hack
+
+ $menu->add($url, _("$icontitle User"), "add-user.gif");
}
if ($returnType == 'object') {
<?php
/**
- * @package Whups
+ * $Horde: shout/lib/User.php,v 0.1 2005/07/16 11:06:48 ben Exp $
+ *
+ * Copyright 2005 Ben Klang <ben@alkaloid.net>
+ *
+ * See the enclosed file LICENSE for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ *
+ * @package Shout
*/
// {{{
class UserDetailsForm extends Horde_Form {
{
global $shout;
$context = $vars->get("context");
-
- parent::Horde_Form($vars, _("Add User - Context: $context"));
+ $extension = $vars->get("extension");
+
+ $users = $shout->getUsers($context);
+ if (array_key_exists($extension, $users)) {
+ # We must be editing an existing user
+ $this->fillUserForm(&$vars, $users[$extension]);
+ $formtitle = "Edit User";
+ } else {
+ $formtitle = "Add User";
+ }
+
+ parent::Horde_Form($vars, _("$formtitle - Context: $context"));
$users = $shout->getUsers($context);
$this->addHidden('', 'context', 'text', true);
+ $this->addHidden('', 'oldextension', 'text', true);
+ $vars->set('oldextension', $extension);
$this->addHidden('', 'action', 'text', true);
$vars->set('action', 'save');
$this->addVariable(_("Full Name"), 'name', 'text', true);
$this->addVariable(_("Music on Hold while transferring"), 'moh',
'radio', true, false, null,
array('values' => array(true => 'Yes', false => 'No')));
+ $this->addVariable(_("Allow Call Transfers"), 'transfer',
+ 'radio', true, false, null,
+ array('values' => array(true => 'Yes', false => 'No')));
+ }
+
+ // {{{ fillUserForm method
+ /**
+ * Fill in the blanks for the UserDetailsForm
+ *
+ * @param object Reference to a Variables object to fill in
+ *
+ * @param array User details
+ *
+ * @return boolean True if successful, Pear::raiseError object on failure
+ */
+ function fillUserForm(&$vars, $userdetails)
+ {
+ #Array ( [dialopts] => Array ( [0] => m [1] => t ) [mailboxopts] => Array (
+ #) [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('pin', $userdetails['mailboxpin']);
+
+ $i = 1;
+ foreach($userdetails['phonenumbers'] as $number) {
+ $vars->set("telephone$i", $number);
+ $i++;
+ }
+
+ if (in_array('m', $userdetails['dialopts'])) {
+ $vars->set('moh', true);
+ } else {
+ $vars->set('moh', false);
+ }
+
+ if (in_array('t', $userdetails['dialopts'])) {
+ $vars->set('transfer', true);
+ } else {
+ $vars->set('transfer', false);
+ }
+
+ return true;
}
+ // }}}
}
// }}}
\ No newline at end of file
<item url="templates/" uploadstatus="2" />
<item url="lib/" uploadstatus="2" />
<item url="lib/Driver/" uploadstatus="2" />
- <item modified_time="1121374073" 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="1121439895" url="index.php" uploadstatus="2" />
+ <item modified_time="1121576093" 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="1121401934" 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="1120355053" url="dialplan.php" />
- <uploadeditem upload_time="1121439895" url="index.php" />
+ <uploadeditem upload_time="1121401934" 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="1121374073" url="lib/Driver/ldap.php" />
+ <uploadeditem upload_time="1121576093" 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="1121374073" url="lib/Shout.php" />
- <uploadeditem upload_time="1120812245" url="lib/System.php" />
- <uploadeditem upload_time="1121439895" url="lib/User.php" />
+ <uploadeditem upload_time="1121576654" url="lib/Shout.php" />
+ <uploadeditem upload_time="1120815615" url="lib/System.php" />
+ <uploadeditem upload_time="1121578306" 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="0" url="main/" />
- <uploadeditem upload_time="1121401845" url="main/dialplan.php" />
- <uploadeditem upload_time="1121401845" url="main/moh.php" />
- <uploadeditem upload_time="1121401845" url="main/system.php" />
- <uploadeditem upload_time="1121401845" url="main/users.php" />
+ <uploadeditem upload_time="1120355053" url="main/dialplan.php" />
+ <uploadeditem upload_time="1120287842" url="main/moh.php" />
+ <uploadeditem upload_time="1120815615" url="main/system.php" />
+ <uploadeditem upload_time="1121306550" url="main/users.php" />
<uploadeditem upload_time="1120287842" url="moh.php" />
<uploadeditem upload_time="1120027019" url="shout.webprj" />
<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="1121458889" url="templates/dialplan/dialplanlist.inc" />
- <uploadeditem upload_time="1121449266" url="templates/menu.inc" />
+ <uploadeditem upload_time="1121573859" url="templates/dialplan/dialplanlist.inc" />
+ <uploadeditem upload_time="1121486161" url="templates/menu.inc" />
+ <uploadeditem upload_time="1121575269" url="templates/table-limiter-begin.inc" />
+ <uploadeditem upload_time="1121575075" url="templates/table-limiter-end.inc" />
<uploadeditem upload_time="0" url="templates/users/" />
- <uploadeditem upload_time="1121440395" url="templates/users/userlist.inc" />
+ <uploadeditem upload_time="1121576381" 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="1121439895" url="users.php" />
+ <uploadeditem upload_time="1121300828" url="themes/graphics/add-user.gif" />
+ <uploadeditem upload_time="1121574328" url="themes/screen.css" />
+ <uploadeditem upload_time="1121574626" url="users.php" />
<uploadeditem upload_time="0" url="users/" />
- <uploadeditem upload_time="1121439895" url="users/add.php" />
+ <uploadeditem upload_time="1121404120" url="users/add.php" />
+ <uploadeditem upload_time="1121575287" url="users/edit.php" />
<uploadeditem upload_time="1121396278" url="users/index.php" />
- <uploadeditem upload_time="1121405057" url="users/save.php" />
+ <uploadeditem upload_time="1121402549" url="users/save.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="1121374073" url="lib/Shout.php" uploadstatus="1" />
- <item modified_time="1120158044" url="templates/common-header.inc" uploadstatus="1" />
- <item modified_time="1121449266" url="templates/menu.inc" uploadstatus="1" />
+ <item modified_time="1121576654" url="lib/Shout.php" uploadstatus="1" />
+ <item modified_time="1120174958" url="templates/common-header.inc" uploadstatus="1" />
+ <item modified_time="1121486161" url="templates/menu.inc" uploadstatus="1" />
<item url="templates/context/" uploadstatus="1" />
- <item modified_time="1120169761" url="templates/context/contextline.inc" uploadstatus="1" />
+ <item modified_time="1120175005" url="templates/context/contextline.inc" uploadstatus="1" />
<item url="templates/users/" uploadstatus="1" />
- <item modified_time="1121440395" url="templates/users/userlist.inc" uploadstatus="1" />
- <item modified_time="1121458889" url="templates/dialplan/dialplanlist.inc" uploadstatus="1" />
+ <item modified_time="1121576381" url="templates/users/userlist.inc" uploadstatus="1" />
+ <item modified_time="1121573859" url="templates/dialplan/dialplanlist.inc" uploadstatus="1" />
<item url="templates/dialplan/" uploadstatus="1" />
- <item modified_time="1120812245" url="lib/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>
<events/>
<item url="themes/" uploadstatus="1" />
<item url="themes/graphics/" uploadstatus="1" />
- <item modified_time="1121295816" url="themes/graphics/add-user.gif" uploadstatus="1" />
+ <item modified_time="1121300828" url="themes/graphics/add-user.gif" uploadstatus="1" />
<item url="users/" uploadstatus="1" />
- <item modified_time="1121439895" url="lib/User.php" uploadstatus="1" />
- <item modified_time="1121439895" url="users/add.php" uploadstatus="1" />
+ <item modified_time="1121578306" url="lib/User.php" uploadstatus="1" />
<item url="main/" uploadstatus="1" />
- <item modified_time="1121401845" url="main/dialplan.php" uploadstatus="1" />
- <item modified_time="1121401845" url="main/moh.php" uploadstatus="1" />
- <item modified_time="1121401845" url="main/system.php" uploadstatus="1" />
- <item modified_time="1121401845" url="main/users.php" uploadstatus="1" />
- <item modified_time="1121439895" url="users.php" uploadstatus="1" />
- <item modified_time="1121405057" url="users/save.php" uploadstatus="1" />
+ <item modified_time="1120355053" url="main/dialplan.php" uploadstatus="1" />
+ <item modified_time="1120287842" url="main/moh.php" uploadstatus="1" />
+ <item modified_time="1120815615" url="main/system.php" uploadstatus="1" />
+ <item modified_time="1121306550" url="main/users.php" uploadstatus="1" />
+ <item modified_time="1121574626" url="users.php" uploadstatus="1" />
+ <item modified_time="1121402549" url="users/save.php" uploadstatus="1" />
+ <item modified_time="1121574328" url="themes/screen.css" />
+ <item modified_time="1121575287" url="users/edit.php" />
+ <item modified_time="1121575269" url="templates/table-limiter-begin.inc" />
+ <item modified_time="1121575075" url="templates/table-limiter-end.inc" />
<treestatus>
<openfolder url="config" />
<openfolder url="lib" />
} else {
echo "Extension $extension";
}
- ?>
+ $editurl = Horde::applicationUrl("dialplan.php");
+ $editurl = Util::addParameter($editurl, "context=$context");
+ $editurl = Util::addParameter($editurl, "action=edit");
+ $editurl = Util::addParameter($editurl, "section=dialplan");
+ $editurl = Util::addParameter($editurl, "extension=$extension");
+ ?> <a class="lighthint" href="<?php
+ echo editurl;
+ ?>">edit</a>
</th>
</tr>
<tr class="smallheader">
--- /dev/null
+<table width="95%" border="0" cellpadding="0" cellspacing="0"><tr><td>
\ No newline at end of file
--- /dev/null
+ </td>
+ </tr>
+</table>
\ No newline at end of file
foreach ($users as $extension => $user) {
$rowcolor = $line % 2;
$line++;
+ $url = Horde::applicationUrl("users.php");
+ $url = Util::addParameter($url, array('context' => $context,
+ 'extension' => $extension));
+ $editurl = Util::addParameter($url, "action=edit");
+ $deleteurl = Util::addParameter($url, "action=delete");
?>
<tr class="item<?php echo $rowcolor; ?>">
- <td width="7%"><?php
- $url = Horde::applicationUrl("users/edit.php");
- $url = Util::addParameter($url, "context=$context");
- $url = Util::addParameter($url, "extension=$extension");
- echo Horde::link($url);
- ?>
- <?php echo $extension; ?></a>
+ <td width="7%"><?php echo Horde::link($editurl); echo $extension; ?></a>
</td>
- <td><?php
- $url = Horde::applicationUrl("users/edit.php");
- $url = Util::addParameter($url, "context=$context");
- $url = Util::addParameter($url, "extension=$extension");
- echo Horde::link($url);?>
- <?php echo $user['name'];?></a>
+ <td><?php echo Horde::link($editurl); echo $user['name']; ?></a>
</td>
<td width="100">
<div align="center">
- <?php
- $url = Horde::applicationUrl("users/edit.php");
- $url = Util::addParameter($url, "context=$context");
- $url = Util::addParameter($url, "extension=$extension");
- echo Horde::link($url); ?>
- <font size="1">edit</font></a>
- |
- <?php
-$url = Horde::applicationUrl("users/delete.php");
- $url = Util::addParameter($url, "context=$context");
- $url = Util::addParameter($url, "extension=$extension");
- echo Horde::link($url); ?>
- <font size="1">delete</font></a>
+ <?php echo Horde::link($editurl, '', 'darkhint'); ?>edit</a>
+ |
+ <?php echo Horde::link($deleteurl, '', 'darkhint'); ?>delete</a>
</div>
<div align="center"></div>
</td>
--- /dev/null
+.lighthint {
+ color: #ffffff;
+ font-size: 10px;
+}
+
+.darkhint {
+ color: #770000;
+ font-size: 10px;
+}
\ No newline at end of file
<?php
/**
- * $Horde: shout/users/index.php,v 0.1 2005/07/13 10:01:01 ben Exp $
+ * $Horde: shout/users.php,v 0.1 2005/07/13 10:01:01 ben Exp $
*
* Copyright 2005 Ben Klang <ben@alkaloid.net>
*
switch ($action) {
case "add":
+ # Treat adds just like an empty edit
+ unset($extension);
+ $action = 'edit';
case "edit":
case "save":
case "delete":
+++ /dev/null
-<?php
-/**
- * $Horde: shout/users/add.php,v 1.0 2005/07/14 01:06:48 ben Exp $
- *
- * Copyright 2005 Ben Klang <ben@alkaloid.net>
- *
- * See the enclosed file LICENSE for license information (GPL). If you
- * did not receive this file, see http://www.horde.org/licenses/gpl.php.
- */
-@define('SHOUT_BASE', dirname(__FILE__) . '/..');
-require_once SHOUT_BASE . '/lib/User.php';
-require_once 'Horde/Variables.php';
-
-$RENDERER = &new Horde_Form_Renderer();
-
-$empty = '';
-$wereerrors = 0;
-
-$vars = &Variables::getDefaultVariables($empty);
-$formname = $vars->get('formname');
-
-$title = _("System Settings");
-
-$UserDetailsForm = &Horde_Form::singleton('UserDetailsForm', $vars);
-$UserDetailsFormValid = $UserDetailsForm->validate($vars, true);
-
-$UserDetailsForm->open($RENDERER, $vars, 'users.php', 'post');
-$UserDetailsForm->preserveVarByPost($vars, "section");
-$UserDetailsForm->preserve($vars);
-$RENDERER->beginActive($UserDetailsForm->getTitle());
-$RENDERER->renderFormActive($UserDetailsForm, $vars);
-$RENDERER->submit();
-$RENDERER->end();
-$UserDetailsForm->close($RENDERER);
\ No newline at end of file
--- /dev/null
+<?php
+/**
+ * $Horde: shout/users/edit.php,v 1.0 2005/07/14 01:06:48 ben Exp $
+ *
+ * Copyright 2005 Ben Klang <ben@alkaloid.net>
+ *
+ * See the enclosed file LICENSE for license information (GPL). If you
+ * did not receive this file, see http://www.horde.org/licenses/gpl.php.
+ */
+@define('SHOUT_BASE', dirname(__FILE__) . '/..');
+require_once SHOUT_BASE . '/lib/User.php';
+require_once 'Horde/Variables.php';
+
+$RENDERER = &new Horde_Form_Renderer();
+
+$empty = '';
+$wereerrors = 0;
+
+$vars = &Variables::getDefaultVariables($empty);
+$formname = $vars->get('formname');
+
+$title = _("System Settings");
+
+$UserDetailsForm = &Horde_Form::singleton('UserDetailsForm', $vars);
+$UserDetailsFormValid = $UserDetailsForm->validate($vars, true);
+
+$UserDetailsForm->open($RENDERER, $vars, 'users.php', 'post');
+$UserDetailsForm->preserveVarByPost($vars, "section");
+$UserDetailsForm->preserve($vars);
+require SHOUT_TEMPLATES . '/table-limiter-begin.inc';
+$RENDERER->beginActive($UserDetailsForm->getTitle());
+$RENDERER->renderFormActive($UserDetailsForm, $vars);
+$RENDERER->submit();
+$RENDERER->end();
+$UserDetailsForm->close($RENDERER);
+require SHOUT_TEMPLATES . '/table-limiter-end.inc';
\ No newline at end of file