Example #1
0
 public static function display()
 {
     if (!is_numeric($_GET['id'])) {
         cc_redirect(Admin::link('users'));
     }
     if ($_POST['cc_form'] == 'edit-group') {
         $id = $_GET['id'];
         $previous = (array) unserialize(urldecode($_POST['previous']));
         $group = $_POST['group'];
         $permissions = (array) $_POST['permissions'];
         $new = array_merge($previous, $permissions);
         foreach ($new as $k => $v) {
             if ($v == "1") {
                 $new[$k] = true;
             }
             if (!array_key_exists($k, $permissions)) {
                 $new[$k] = false;
             }
         }
         if (DB::update('users', array('name', 'data'), array($group, serialize(filter('admin_edit_group_data', array('permissions' => $new)))), array('users_id = ?', $id))) {
             $message = Message::success(__('admin', 'group-information-updated'));
         } else {
             $message = Message::error(__('admin', 'database-error'));
         }
     }
     $p = Permissions::getAll();
     $g = new Group((int) $_GET['id']);
     $p_form = new Form('');
     $p_form->setCC_Form('edit-group');
     $p_form->startFieldset(__('admin', 'group-information'));
     $p_form->addInput(__('admin', 'group-name'), 'text', 'group', $g->getName());
     $p_form->endFieldset();
     $p_form->addHTML(sprintf("<h3>%s</h3>", __('admin', 'permissions')));
     $p_table = new Table('permissions');
     $p_table->addHeader(array('Name', 'Allowed'));
     foreach ($p as $k => $v) {
         $previous[$v['name']] = $g->isAllowed($v['name']);
         $p_table->addRow(array(__('permissions', $v['name']), sprintf('<input type="checkbox" name="permissions[%s]"%svalue="1"/>', $v['name'], $g->isAllowed($v['name']) ? ' checked="checked"' : '')));
     }
     $p_form->addHidden('previous', urlencode(serialize($previous)));
     $p_form->addHTML($p_table->html());
     $p_form->addSubmit('', 'save-permissions', __('admin', 'save-changes'));
     return array(sprintf('%s: %s', __('admin', 'edit-group'), $g->getName()), $message . $p_form->html());
 }
Example #2
0
 public static function display()
 {
     $users = Database::select('users', '*', array('type = ?', 'user'), array('name', 'ASC'));
     $groups = Database::select('users', '*', array('type = ?', 'group'), array('name', 'ASC'));
     $groups_array = array();
     $groups_table = new Table("groups", array('', 'actions'));
     $groups_table->addHeader(array(__('admin', "group-name"), __('admin', "actions")));
     foreach ($groups->fetchAll(PDO::FETCH_ASSOC) as $key => $value) {
         $group_array[$value['users_id']] = $value['name'];
         $groups_table->addRow(array($value['name'], icon('group_edit', Admin::link('users/edit-group', array('id' => $value['users_id'])), false, array('rel' => 'tooltip', 'title' => StringUtils::escapeForHTMLAttr(sprintf(__('admin', 'edit-specific'), $value['name'])))) . icon('group_delete', Admin::link('users/delete', array('id' => $value['users_id'], 'type' => 'group')), false, array('class' => 'delete-link', 'rel' => 'tooltip', 'title' => StringUtils::escapeForHTMLAttr(sprintf(__('admin', 'delete-specific'), $value['name']))))));
     }
     $groups_table = $groups_table->html();
     $users_table = new Table("users", array('', '', 'actions'));
     $users_table->addHeader(array(__('admin', 'name'), __('admin', 'group'), __('admin', 'actions')));
     foreach ($users->fetchAll(PDO::FETCH_ASSOC) as $key => $value) {
         $users_table->addRow(array($value['name'], $group_array[$value['group']], icon('user_edit', Admin::link('users/edit-user', array('id' => $value['users_id'])), false, array('rel' => 'tooltip', 'title' => StringUtils::escapeForHTMLAttr(sprintf(__('admin', 'edit-specific'), $value['name'])))) . icon('user_delete', Admin::link('users/delete', array('id' => $value['users_id'], 'type' => 'user')), false, array('class' => 'delete-link', 'rel' => 'tooltip', 'title' => StringUtils::escapeForHTMLAttr(sprintf(__('admin', 'delete-specific'), $value['name']))))));
     }
     $r = "<h3>" . __('admin', 'users') . "</h3>" . $users_table->html() . "<h3>" . __('admin', 'groups') . "</h3>" . $groups_table;
     return array(__('admin', 'user-management'), $r);
 }
Example #3
0
 /**
  * Return html table from data array
  * 
  * @param array $data array of data
  * @param array $tableInfo array of common table info and settings
  * @return void
  */
 private static function writeTable($data = false, $tableInfo = false)
 {
     if ($data) {
         $args = "";
         $colKeys = false;
         $titles = false;
         //Search and collect information about the table in $tableInfo
         //High priority is given to $tableInfo(second parameter)
         if (!$tableInfo) {
             $tableInfo = $data['tableInfo'];
         } elseif ($data['tableInfo']) {
             $tableInfo = array_replace_recursive($data['tableInfo'], $tableInfo);
         }
         $data['tableInfo'] = $tableInfo;
         $date = new DateTime('now');
         $_SESSION['class.table']['date'] = $date;
         $_SESSION['class.table']['array'] = $data;
         unset($data['tableInfo']);
         if ($tableInfo) {
             //Following work will be happening with global variable $info
             self::$info = $tableInfo;
             unset($tableInfo);
             //Collecting information about columns(titles and column keys)
             if (self::$info['cols']) {
                 $colKeys = array_keys(self::$info['cols']);
                 $titles = array_filter(self::$info['cols']);
                 unset(self::$info['cols']);
             }
         }
         self::$info['class'] = trim("class.table " . self::$info['class']);
         //Collecting HTML parameters for table
         $args = self::convertRulesToHtml(self::$info);
         //Height of each row will be calculated automatically by the default
         if (!isset(self::$info['rowspan'])) {
             self::$info['rowspan'] = true;
         }
         self::$html .= "\n\t\t<table{$args}>";
         self::$html .= "\n\t\t\t<caption>\n\t\t\t\t\t\t\t\t\t\t\t<div class='forToggle'><div class='forVAlign'></div><button>—охранить</button></div>\n\t\t\t\t\t\t\t\t\t\t</caption>";
         //If title was set then write
         if (is_array($titles) && sizeof($titles)) {
             self::$html .= "\n\t\t<tr>";
             foreach ($titles as $title) {
                 self::$html .= "\n\t\t\t<th>{$title}</th>";
             }
             self::$html .= "\n\t\t</tr>";
         }
         //Write the rows
         foreach ($data as $info) {
             self::writeRow($info, $colKeys);
         }
         self::$html .= "\n\t\t</table>";
         $html = self::$html;
         //Clearing of global variables for the next use a static class
         self::$info = null;
         self::$html = null;
         return $html;
     }
 }