public function _buildBackupTable($table)
 {
     $db = new PHPWS_DB($table);
     $result = $db->getTableColumns(TRUE);
     foreach ($result as $col) {
         if ($col['name'] == 'id') {
             continue;
         }
         $allColumns[] = $col;
     }
     $columns = PHPWS_DB::parseColumns($allColumns);
     $columns[] = 'backup_id int NOT NULL';
     $columns[] = 'backup_order smallint NOT NULL';
     $sql = 'CREATE TABLE ' . Backup::getBackupTableName($table) . ' (' . implode(', ', $columns) . ')';
     return PHPWS_DB::query($sql);
 }
Exemple #2
0
 public static function setPermissions($group_id, $module, $level, $subpermissions = NULL)
 {
     if (empty($group_id) || !is_numeric($group_id)) {
         return false;
     }
     $tableName = Users_Permission::getPermissionTableName($module);
     if (!PHPWS_DB::isTable($tableName)) {
         return;
     }
     $db = new PHPWS_DB($tableName);
     $db->addWhere('group_id', (int) $group_id);
     $db->delete();
     $db->resetWhere();
     $db->addValue('group_id', (int) $group_id);
     $columns = $db->getTableColumns();
     $db->addValue('permission_level', (int) $level);
     if ($level == NO_PERMISSION) {
         unset($subpermissions);
         Users_Permission::clearItemPermissions($module, $group_id);
     }
     if (isset($subpermissions)) {
         foreach ($columns as $colName) {
             if ($colName == 'permission_level' || $colName == 'group_id') {
                 continue;
             }
             if (isset($subpermissions[$colName]) && (int) $subpermissions[$colName] == 1) {
                 $db->addValue($colName, 1);
             } else {
                 $db->addValue($colName, 0);
             }
         }
     }
     return $db->insert();
 }