mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 16:36:37 +02:00
capability riskbitmasks and user trustbitmask patch #1 see MDL-6412
This commit is contained in:
parent
2b3447c38a
commit
be4486da83
7 changed files with 34 additions and 9 deletions
|
@ -1237,17 +1237,29 @@ function get_cached_capabilities($component='moodle') {
|
||||||
function update_capabilities($component='moodle') {
|
function update_capabilities($component='moodle') {
|
||||||
|
|
||||||
$storedcaps = array();
|
$storedcaps = array();
|
||||||
$filecaps = array();
|
|
||||||
|
|
||||||
|
$filecaps = load_capability_def($component);
|
||||||
$cachedcaps = get_cached_capabilities($component);
|
$cachedcaps = get_cached_capabilities($component);
|
||||||
if ($cachedcaps) {
|
if ($cachedcaps) {
|
||||||
foreach ($cachedcaps as $cachedcap) {
|
foreach ($cachedcaps as $cachedcap) {
|
||||||
array_push($storedcaps, $cachedcap->name);
|
array_push($storedcaps, $cachedcap->name);
|
||||||
|
// update risk bitmasks in existing capabilitites if needed
|
||||||
|
if (array_key_exists($cachedcap->name, $filecaps)) {
|
||||||
|
if (!array_key_exists('riskbitmask', $filecaps[$cachedcap->name])) {
|
||||||
|
$filecaps[$cachedcap->name]['riskbitmask'] = 0; // no risk by default
|
||||||
|
}
|
||||||
|
if ($cachedcap->riskbitmask != $filecaps[$cachedcap->name]['riskbitmask']) {
|
||||||
|
$updatecap = new object;
|
||||||
|
$updatecap->id = $cachedcap->id;
|
||||||
|
$updatecap->riskbitmask = $filecaps[$cachedcap->name]['riskbitmask'];
|
||||||
|
if (!update_record('capabilities', $updatecap)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$filecaps = load_capability_def($component);
|
|
||||||
|
|
||||||
// Are there new capabilities in the file definition?
|
// Are there new capabilities in the file definition?
|
||||||
$newcaps = array();
|
$newcaps = array();
|
||||||
|
|
||||||
|
@ -1264,6 +1276,7 @@ function update_capabilities($component='moodle') {
|
||||||
$capability->captype = $capdef['captype'];
|
$capability->captype = $capdef['captype'];
|
||||||
$capability->contextlevel = $capdef['contextlevel'];
|
$capability->contextlevel = $capdef['contextlevel'];
|
||||||
$capability->component = $component;
|
$capability->component = $component;
|
||||||
|
$capability->riskbitmask = $capdef['riskbitmask'];
|
||||||
|
|
||||||
if (!insert_record('capabilities', $capability, false, 'id')) {
|
if (!insert_record('capabilities', $capability, false, 'id')) {
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -583,7 +583,8 @@
|
||||||
<FIELD NAME="ajax" TYPE="int" LENGTH="1" NOTNULL="true" UNSIGNED="true" DEFAULT="1" SEQUENCE="false" ENUM="false" PREVIOUS="htmleditor" NEXT="autosubscribe"/>
|
<FIELD NAME="ajax" TYPE="int" LENGTH="1" NOTNULL="true" UNSIGNED="true" DEFAULT="1" SEQUENCE="false" ENUM="false" PREVIOUS="htmleditor" NEXT="autosubscribe"/>
|
||||||
<FIELD NAME="autosubscribe" TYPE="int" LENGTH="1" NOTNULL="true" UNSIGNED="true" DEFAULT="1" SEQUENCE="false" ENUM="false" PREVIOUS="ajax" NEXT="trackforums"/>
|
<FIELD NAME="autosubscribe" TYPE="int" LENGTH="1" NOTNULL="true" UNSIGNED="true" DEFAULT="1" SEQUENCE="false" ENUM="false" PREVIOUS="ajax" NEXT="trackforums"/>
|
||||||
<FIELD NAME="trackforums" TYPE="int" LENGTH="1" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="autosubscribe" NEXT="timemodified"/>
|
<FIELD NAME="trackforums" TYPE="int" LENGTH="1" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="autosubscribe" NEXT="timemodified"/>
|
||||||
<FIELD NAME="timemodified" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="trackforums"/>
|
<FIELD NAME="timemodified" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="trackforums" NEXT="trustbitmask"/>
|
||||||
|
<FIELD NAME="trustbitmask" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" COMMENT="Default comment for the field, please edit me" PREVIOUS="timemodified"/>
|
||||||
</FIELDS>
|
</FIELDS>
|
||||||
<KEYS>
|
<KEYS>
|
||||||
<KEY NAME="primary" TYPE="primary" FIELDS="id" COMMENT="Primary key for user"/>
|
<KEY NAME="primary" TYPE="primary" FIELDS="id" COMMENT="Primary key for user"/>
|
||||||
|
@ -915,7 +916,8 @@
|
||||||
<FIELD NAME="name" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="id" NEXT="captype"/>
|
<FIELD NAME="name" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="id" NEXT="captype"/>
|
||||||
<FIELD NAME="captype" TYPE="char" LENGTH="50" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="name" NEXT="contextlevel"/>
|
<FIELD NAME="captype" TYPE="char" LENGTH="50" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="name" NEXT="contextlevel"/>
|
||||||
<FIELD NAME="contextlevel" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="captype" NEXT="component"/>
|
<FIELD NAME="contextlevel" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="captype" NEXT="component"/>
|
||||||
<FIELD NAME="component" TYPE="char" LENGTH="100" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="contextlevel"/>
|
<FIELD NAME="component" TYPE="char" LENGTH="100" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="contextlevel" NEXT="riskbitmask"/>
|
||||||
|
<FIELD NAME="riskbitmask" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" COMMENT="Default comment for the field, please edit me" PREVIOUS="component"/>
|
||||||
</FIELDS>
|
</FIELDS>
|
||||||
<KEYS>
|
<KEYS>
|
||||||
<KEY NAME="primary" TYPE="primary" FIELDS="id" COMMENT="Primary key for capabilities" NEXT="name"/>
|
<KEY NAME="primary" TYPE="primary" FIELDS="id" COMMENT="Primary key for capabilities" NEXT="name"/>
|
||||||
|
|
|
@ -2165,6 +2165,10 @@ function main_upgrade($oldversion=0) {
|
||||||
table_column('sessions2', 'sessdata', 'sessdata', 'LONGTEXT', '', '', '', '', '');
|
table_column('sessions2', 'sessdata', 'sessdata', 'LONGTEXT', '', '', '', '', '');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($oldversion < 2006083002) {
|
||||||
|
table_column('capabilities', '', 'riskbitmask', 'INTEGER', '10', 'unsigned', '0', 'not null', '');
|
||||||
|
}
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -985,6 +985,7 @@ CREATE TABLE prefix_capabilities (
|
||||||
`captype` varchar(50) NOT NULL default '',
|
`captype` varchar(50) NOT NULL default '',
|
||||||
`contextlevel` int(10) unsigned NOT NULL default '0',
|
`contextlevel` int(10) unsigned NOT NULL default '0',
|
||||||
`component` varchar(100) NOT NULL default '',
|
`component` varchar(100) NOT NULL default '',
|
||||||
|
`riskbitmask` int(10) unsigned NOT NULL default '0',
|
||||||
UNIQUE KEY `name` (`name`),
|
UNIQUE KEY `name` (`name`),
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) TYPE=MYISAM COMMENT ='this defines all capabilities';
|
) TYPE=MYISAM COMMENT ='this defines all capabilities';
|
||||||
|
|
|
@ -1760,6 +1760,10 @@ function main_upgrade($oldversion=0) {
|
||||||
CREATE INDEX {$CFG->prefix}sess_exp2_ix ON {$CFG->prefix}sessions2 (expireref);", true);
|
CREATE INDEX {$CFG->prefix}sess_exp2_ix ON {$CFG->prefix}sessions2 (expireref);", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($oldversion < 2006083002) {
|
||||||
|
table_column('capabilities', '', 'riskbitmask', 'INTEGER', '10', 'unsigned', '0', 'not null', '');
|
||||||
|
}
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -750,6 +750,7 @@ CREATE TABLE prefix_capabilities (
|
||||||
captype varchar(50) NOT NULL default '',
|
captype varchar(50) NOT NULL default '',
|
||||||
contextlevel integer NOT NULL default 0,
|
contextlevel integer NOT NULL default 0,
|
||||||
component varchar(100) NOT NULL default ''
|
component varchar(100) NOT NULL default ''
|
||||||
|
riskbitmask integer NOT NULL default 0,
|
||||||
);
|
);
|
||||||
CREATE UNIQUE INDEX prefix_capabilities_name_idx ON prefix_capabilities (name);
|
CREATE UNIQUE INDEX prefix_capabilities_name_idx ON prefix_capabilities (name);
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
// This is compared against the values stored in the database to determine
|
// This is compared against the values stored in the database to determine
|
||||||
// whether upgrades should be performed (see lib/db/*.php)
|
// whether upgrades should be performed (see lib/db/*.php)
|
||||||
|
|
||||||
$version = 2006083001; // YYYYMMDD = date
|
$version = 2006083003; // YYYYMMDD = date
|
||||||
// XY = increments within a single day
|
// XY = increments within a single day
|
||||||
|
|
||||||
$release = '1.7 dev'; // Human-friendly version name
|
$release = '1.7 dev'; // Human-friendly version name
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue