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); }
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(); }