// Create a new add/edit form
$account = Horde_Util::getFormData('extension');
$accounts = $shout->storage->getAccounts();
- $vars = new Horde_Variables(array('code' => $account, 'name' => $accounts[$account]));
+ $vars = new Horde_Variables(array('code' => $account, 'name' => $accounts[$account]['name']));
$vars->set('action', $action);
// Make sure we get the right template below.
self::$_perms['title']['shout:accounts'] = _("Accounts");
// Run through every contact source.
- foreach ($accounts as $code => $account) {
+ foreach ($accounts as $code => $info) {
self::$_perms['tree']['shout']['accounts'][$code] = false;
- self::$_perms['title']['shout:accounts:' . $code] = $account;
+ self::$_perms['title']['shout:accounts:' . $code] = $info['name'];
foreach(
array(
{
$this->_connect();
- $sql = 'SELECT name, code FROM accounts';
+ $sql = 'SELECT name, code, adminpin FROM accounts';
$vars = array();
$msg = 'SQL query in Shout_Driver_Sql#getAccounts(): ' . $sql;
$accounts = array();
while ($row && !($row instanceof PEAR_Error)) {
- $accounts[$row['code']] = $row['name'];
+ $accounts[$row['code']] = $row;
$row = $result->fetchRow(DB_FETCHMODE_ASSOC);
}
return $accounts;
}
- public function saveAccount($code, $name)
+ public function saveAccount($code, $name, $adminpin)
{
$this->_connect();
- if (isset($details['oldname'])) {
- if (!isset($menus[$details['oldname']])) {
- throw new Shout_Exception(_("Old account not found. Edit aborted."));
- } else {
- throw new Shout_Exception(_("Unsupported operation."));
- $sql = 'UPDATE accounts SET code = ?, name =? WHERE code = ?';
- }
- } else {
- $sql = 'INSERT INTO accounts (code, name) VALUES (?,?)';
- }
-
- $vars = array($code, $name);
-
- $msg = 'SQL query in Shout_Driver_Sql#getAccounts(): ' . $sql;
+ // FIXME: Enable editing of account details
+// if (isset($details['oldname'])) {
+// if (!isset($menus[$details['oldname']])) {
+// throw new Shout_Exception(_("Old account not found. Edit aborted."));
+// } else {
+// throw new Shout_Exception(_("Unsupported operation."));
+// $sql = 'UPDATE accounts SET code = ?, name = ?, adminpin = ? ' .
+// 'WHERE code = ?';
+// }
+// } else {
+ $sql = 'INSERT INTO accounts (code, name, adminpin) VALUES (?,?,?)';
+ $vars = array($code, $name, $adminpin);
+ $msg = 'SQL query in Shout_Driver_Sql#saveAccount(): ' . $sql;
Horde::logMessage($msg, 'DEBUG');
$result = $this->_db->query($sql, $vars);
if ($result instanceof PEAR_Error) {
$formtitle = "Add Account";
}
- $accountname = $_SESSION['shout']['accounts'][$curaccount];
+ $accountname = $_SESSION['shout']['accounts'][$curaccount]['name'];
$title = sprintf(_("$formtitle %s"), $accountname);
parent::__construct($vars, $title);
//$this->addHidden('', 'oldaccount', 'text', false);
$this->addVariable(_("Account Name"), 'name', 'text', true);
$this->addVariable(_("Account Code"), 'code', 'text', true);
+ $this->addVariable(_("Admin PIN"), 'adminpin', 'number', false);
return true;
}
$code = $this->_vars->get('code');
$name = $this->_vars->get('name');
+ $adminpin = $this->_vars->get('adminpin');
+ if (empty($adminpin)) {
+ $adminpin = rand(1000, 9999);
+ }
- $shout->storage->saveAccount($code, $name);;
+ $shout->storage->saveAccount($code, $name, $adminpin);
}
}
$account = $vars->get('account');
$title = _("Delete Extension %s - Account: %s");
- $title = sprintf($title, $extension, $_SESSION['shout']['accounts'][$account]);
+ $title = sprintf($title, $extension, $_SESSION['shout']['accounts'][$account]['name']);
parent::__construct($vars, $title);
$this->addHidden('', 'account', 'text', true);
$curaccount = $_SESSION['shout']['curaccount'];
$accountname = $vars->account;
- $title = sprintf(_("$formtitle - Account: %s"), $accountname);
+ $title = sprintf(_("$formtitle"));
parent::__construct($vars, $title);
$this->addHidden('', 'action', 'text', true);
$account = $vars->get('account');
$title = _("FIXME Delete Device %s - Account: %s");
- $title = sprintf($title, $devid, $_SESSION['shout']['accounts'][$account]);
+ $title = sprintf($title, $devid, $_SESSION['shout']['accounts'][$account]['name']);
parent::__construct($vars, $title);
$this->addHidden('', 'account', 'text', true);
}
$curaccount = $_SESSION['shout']['curaccount'];
- $accountname = $_SESSION['shout']['accounts'][$curaccount];
+ $accountname = $_SESSION['shout']['accounts'][$curaccount]['name'];
$title = sprintf(_("$formtitle - Account: %s"), $accountname);
parent::__construct($vars, $title);
$account = $vars->get('account');
$title = _("Delete Device %s - Account: %s");
- $title = sprintf($title, $devid, $_SESSION['shout']['accounts'][$account]);
+ $title = sprintf($title, $devid, $_SESSION['shout']['accounts'][$account]['name']);
parent::__construct($vars, $title);
$this->addHidden('', 'account', 'text', true);
*/
function __construct(&$vars)
{
- $account = $_SESSION['shout']['curaccount'];
+ $curaccount = $_SESSION['shout']['curaccount'];
$action = $vars->get('action');
if ($action == 'edit') {
$formtitle = "Edit User";
$formtitle = "Add User";
}
- $accountname = $_SESSION['shout']['accounts'][$curaccount];
+ $accountname = $_SESSION['shout']['accounts'][$curaccount]['name'];
$title = sprintf(_("$formtitle - Account: %s"), $accountname);
parent::__construct($vars, $title);
$account = $vars->get('account');
$title = _("Delete Extension %s - Account: %s");
- $title = sprintf($title, $extension, $_SESSION['shout']['accounts'][$account]);
+ $title = sprintf($title, $extension, $_SESSION['shout']['accounts'][$account]['name']);
parent::__construct($vars, $title);
$this->addHidden('', 'account', 'text', true);
}
$curaccount = $_SESSION['shout']['curaccount'];
- $accountname = $_SESSION['shout']['accounts'][$curaccount];
+ $accountname = $_SESSION['shout']['accounts'][$curaccount]['name'];
$title = sprintf(_("%s - Account: %s"), $formtitle, $accountname);
parent::__construct($vars, $title);
$account = $vars->get('account');
$title = _("Delete Menu %s - Account: %s");
- $title = sprintf($title, $menu, $_SESSION['shout']['accounts'][$account]);
+ $title = sprintf($title, $menu, $_SESSION['shout']['accounts'][$account]['name']);
parent::__construct($vars, $title);
$this->setButtons(array(_("Delete"), _("Cancel")));
'description' => _("Restart menu"),
'args' => array()
),
+ 'adminlogin' => array(
+ 'description' => _("Login to Admin Functions"),
+ 'args' => array()
+ ),
'none' => array(
'description' => _("No action"),
'args' => array()
<div class="header">
- Account: <?php echo $_SESSION['shout']['accounts'][$curaccount]; ?>
+ Account: <?php echo $_SESSION['shout']['accounts'][$curaccount]['name']; ?>
</div>
<div id="extensionList">
<table width="100%" cellspacing="0" class="striped">
<tr>
<td class="uheader">Account Code</td>
- <td id ="destinationsCol" class="uheader">Account Name</td>
- </tr>
- <?php
- foreach ($accounts as $code => $name) {
-
- $url = Horde::applicationUrl("admin.php");
- $url = Horde_Util::addParameter($url,
- array(
- 'account' => $code,
- )
- );
- $editurl = Horde_Util::addParameter($url, 'action', 'edit');
- $deleteurl = Horde_Util::addParameter($url, 'action', 'delete');
- ?>
- <tr class="item" style="vertical-align: top">
- <td>
- <?php echo Horde::link($editurl); echo $code; ?></a>
- </td>
- <td>
- <?php echo $name; ?>
- </td>
+ <td class="uheader">Account Name</td>
+ <td class="uheader">Admin PIN</td>
</tr>
<?php
+ $url = Horde::applicationUrl("admin.php");
+ $editurl = Horde_Util::addParameter($url, 'action', 'edit');
+ $deleteurl = Horde_Util::addParameter($url, 'action', 'delete');
+ foreach ($accounts as $acctinfo) {
+ $code = $acctinfo['code'];
+ ?>
+ <tr class="item" style="vertical-align: top">
+ <td>
+ <?php echo Horde::link(Horde_Util::addParameter($editurl,
+ array('account' => $code))); echo $code; echo '</a>'; ?>
+ </td>
+ <td>
+ <?php echo $acctinfo['name']; ?>
+ </td>
+ <td>
+ <?php echo $acctinfo['adminpin']; ?>
+ </td>
+ </tr>
+ <?php
}
- ?>
+ ?>
</table>
</div>
<ul id="controls">
<?php
- $addurl = Horde::applicationUrl('admin.php');
- $addurl = Horde_Util::addParameter($addurl, 'action', 'add');
+ $addurl = Horde_Util::addParameter($url, 'action', 'add');
?>
<li><a class="button" href="<?php echo $addurl; ?>">
<?php echo Horde::img('extension-add.png'); ?> New Account
<div class="header">
- Account: <?php echo $_SESSION['shout']['accounts'][$curaccount]; ?>
+ Account: <?php echo $_SESSION['shout']['accounts'][$curaccount]['name']; ?>
</div>
<div id="conferenceList">
<div class="header">
- Account: <?php echo $_SESSION['shout']['accounts'][$curaccount]; ?>
+ Account: <?php echo $_SESSION['shout']['accounts'][$curaccount]['name']; ?>
</div>
<div id="extensionList">
div.appendChild(img);
break;
+ case 'adminlogin':
case 'directory':
case 'rewind':
case 'none':
<div class="header">
- Account: <?php echo $_SESSION['shout']['accounts'][$curaccount]; ?>
+ Account: <?php echo $_SESSION['shout']['accounts'][$curaccount]['name']; ?>
</div>
<div id="extensionList">
<?php Horde_Util::pformInput() ?>
<select id="account" name="account" onchange="accountSubmit()">
<?php
- foreach ($accounts as $account => $name) {
+ foreach ($accounts as $account => $info) {
print "<option value=\"$account\"";
if ($account == $curaccount) {
print " selected";
}
- print ">$name</option>\n";
+ print ">${info['name']}</option>\n";
}
?>
</select>
<div class="header">
- Account: <?php echo $_SESSION['shout']['accounts'][$curaccount]; ?>
+ Account: <?php echo $_SESSION['shout']['accounts'][$curaccount]['name']; ?>
</div>
<div id="extensionList">