[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/lib/db/ -> access.php (source)

   1  <?php
   2  // This file is part of Moodle - http://moodle.org/
   3  //
   4  // Moodle is free software: you can redistribute it and/or modify
   5  // it under the terms of the GNU General Public License as published by
   6  // the Free Software Foundation, either version 3 of the License, or
   7  // (at your option) any later version.
   8  //
   9  // Moodle is distributed in the hope that it will be useful,
  10  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12  // GNU General Public License for more details.
  13  //
  14  // You should have received a copy of the GNU General Public License
  15  // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
  16  
  17  /**
  18   * Capability definitions for Moodle core.
  19   *
  20   * The capabilities are loaded into the database table when the module is
  21   * installed or updated. Whenever the capability definitions are updated,
  22   * the module version number should be bumped up.
  23   *
  24   * The system has four possible values for a capability:
  25   * CAP_ALLOW, CAP_PREVENT, CAP_PROHIBIT, and inherit (not set).
  26   *
  27   *
  28   * CAPABILITY NAMING CONVENTION
  29   *
  30   * It is important that capability names are unique. The naming convention
  31   * for capabilities that are specific to modules and blocks is as follows:
  32   *   [mod/block]/<plugin_name>:<capabilityname>
  33   *
  34   * component_name should be the same as the directory name of the mod or block.
  35   *
  36   * Core moodle capabilities are defined thus:
  37   *    moodle/<capabilityclass>:<capabilityname>
  38   *
  39   * Examples: mod/forum:viewpost
  40   *           block/recent_activity:view
  41   *           moodle/site:deleteuser
  42   *
  43   * The variable name for the capability definitions array is $capabilities
  44   *
  45   * For more information, take a look to the documentation available:
  46   *     - Access API: {@link http://docs.moodle.org/dev/Access_API}
  47   *     - Upgrade API: {@link http://docs.moodle.org/dev/Upgrade_API}
  48   *
  49   * @package   core_access
  50   * @category  access
  51   * @copyright 2006 onwards Martin Dougiamas  http://dougiamas.com
  52   * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  53   */
  54  
  55  defined('MOODLE_INTERNAL') || die();
  56  
  57  $capabilities = array(
  58      'moodle/site:config' => array(
  59  
  60          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS | RISK_CONFIG | RISK_DATALOSS,
  61  
  62          'captype' => 'write',
  63          'contextlevel' => CONTEXT_SYSTEM,
  64          'archetypes' => array(
  65          )
  66      ),
  67  
  68      'moodle/site:readallmessages' => array(
  69  
  70          'riskbitmask' => RISK_PERSONAL,
  71  
  72          'captype' => 'read',
  73          'contextlevel' => CONTEXT_SYSTEM,
  74          'archetypes' => array(
  75              'manager' => CAP_ALLOW,
  76              'editingteacher' => CAP_ALLOW
  77          )
  78      ),
  79  
  80      'moodle/site:deleteanymessage' => array(
  81  
  82          'riskbitmask' => RISK_DATALOSS,
  83  
  84          'captype' => 'write',
  85          'contextlevel' => CONTEXT_SYSTEM,
  86          'archetypes' => array(
  87              'manager' => CAP_ALLOW
  88          )
  89      ),
  90  
  91      'moodle/site:sendmessage' => array(
  92  
  93          'riskbitmask' => RISK_SPAM,
  94  
  95          'captype' => 'write',
  96          'contextlevel' => CONTEXT_SYSTEM,
  97          'archetypes' => array(
  98              'manager' => CAP_ALLOW,
  99              'user' => CAP_ALLOW
 100          )
 101      ),
 102  
 103      'moodle/site:deleteownmessage' => array(
 104  
 105          'captype' => 'write',
 106          'contextlevel' => CONTEXT_SYSTEM,
 107          'archetypes' => array(
 108              'user' => CAP_ALLOW
 109          )
 110      ),
 111  
 112      'moodle/site:approvecourse' => array(
 113  
 114          'riskbitmask' => RISK_XSS,
 115  
 116          'captype' => 'write',
 117          'contextlevel' => CONTEXT_SYSTEM,
 118          'archetypes' => array(
 119              'manager' => CAP_ALLOW
 120          )
 121      ),
 122  
 123      'moodle/backup:backupcourse' => array(
 124  
 125          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS,
 126  
 127          'captype' => 'write',
 128          'contextlevel' => CONTEXT_COURSE,
 129          'archetypes' => array(
 130              'editingteacher' => CAP_ALLOW,
 131              'manager' => CAP_ALLOW
 132          ),
 133  
 134          'clonepermissionsfrom' =>  'moodle/site:backup'
 135      ),
 136  
 137      'moodle/backup:backupsection' => array(
 138  
 139          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS,
 140  
 141          'captype' => 'write',
 142          'contextlevel' => CONTEXT_COURSE,
 143          'archetypes' => array(
 144              'editingteacher' => CAP_ALLOW,
 145              'manager' => CAP_ALLOW
 146          ),
 147  
 148          'clonepermissionsfrom' =>  'moodle/backup:backupcourse'
 149      ),
 150  
 151      'moodle/backup:backupactivity' => array(
 152  
 153          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS,
 154  
 155          'captype' => 'write',
 156          'contextlevel' => CONTEXT_MODULE,
 157          'archetypes' => array(
 158              'editingteacher' => CAP_ALLOW,
 159              'manager' => CAP_ALLOW
 160          ),
 161  
 162          'clonepermissionsfrom' =>  'moodle/backup:backupcourse'
 163      ),
 164  
 165      'moodle/backup:backuptargethub' => array(
 166  
 167          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS,
 168  
 169          'captype' => 'write',
 170          'contextlevel' => CONTEXT_COURSE,
 171          'archetypes' => array(
 172              'editingteacher' => CAP_ALLOW,
 173              'manager' => CAP_ALLOW
 174          ),
 175  
 176          'clonepermissionsfrom' =>  'moodle/backup:backupcourse'
 177      ),
 178  
 179      'moodle/backup:backuptargetimport' => array(
 180  
 181          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS,
 182  
 183          'captype' => 'write',
 184          'contextlevel' => CONTEXT_COURSE,
 185          'archetypes' => array(
 186              'editingteacher' => CAP_ALLOW,
 187              'manager' => CAP_ALLOW
 188          ),
 189  
 190          'clonepermissionsfrom' =>  'moodle/backup:backupcourse'
 191      ),
 192  
 193      'moodle/backup:downloadfile' => array(
 194  
 195          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS,
 196  
 197          'captype' => 'write',
 198          'contextlevel' => CONTEXT_COURSE,
 199          'archetypes' => array(
 200              'editingteacher' => CAP_ALLOW,
 201              'manager' => CAP_ALLOW
 202          ),
 203  
 204          'clonepermissionsfrom' =>  'moodle/site:backupdownload'
 205      ),
 206  
 207      'moodle/backup:configure' => array(
 208  
 209          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS,
 210  
 211          'captype' => 'write',
 212          'contextlevel' => CONTEXT_COURSE,
 213          'archetypes' => array(
 214              'editingteacher' => CAP_ALLOW,
 215              'manager' => CAP_ALLOW
 216          )
 217      ),
 218  
 219      'moodle/backup:userinfo' => array(
 220  
 221          'riskbitmask' => RISK_PERSONAL,
 222  
 223          'captype' => 'read',
 224          'contextlevel' => CONTEXT_COURSE,
 225          'archetypes' => array(
 226              'manager' => CAP_ALLOW
 227          )
 228      ),
 229  
 230      'moodle/backup:anonymise' => array(
 231  
 232          'riskbitmask' => RISK_PERSONAL,
 233  
 234          'captype' => 'read',
 235          'contextlevel' => CONTEXT_COURSE,
 236          'archetypes' => array(
 237              'manager' => CAP_ALLOW
 238          )
 239      ),
 240  
 241      'moodle/restore:restorecourse' => array(
 242  
 243          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS,
 244  
 245          'captype' => 'write',
 246          'contextlevel' => CONTEXT_COURSE,
 247          'archetypes' => array(
 248              'editingteacher' => CAP_ALLOW,
 249              'manager' => CAP_ALLOW
 250          ),
 251  
 252          'clonepermissionsfrom' =>  'moodle/site:restore'
 253      ),
 254  
 255      'moodle/restore:restoresection' => array(
 256  
 257          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS,
 258  
 259          'captype' => 'write',
 260          'contextlevel' => CONTEXT_COURSE,
 261          'archetypes' => array(
 262              'editingteacher' => CAP_ALLOW,
 263              'manager' => CAP_ALLOW
 264          ),
 265  
 266          'clonepermissionsfrom' =>  'moodle/restore:restorecourse'
 267      ),
 268  
 269      'moodle/restore:restoreactivity' => array(
 270  
 271          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS,
 272  
 273          'captype' => 'write',
 274          'contextlevel' => CONTEXT_COURSE,
 275          'archetypes' => array(
 276              'editingteacher' => CAP_ALLOW,
 277              'manager' => CAP_ALLOW
 278          ),
 279  
 280          'clonepermissionsfrom' =>  'moodle/restore:restorecourse'
 281      ),
 282  
 283      'moodle/restore:viewautomatedfilearea' => array(
 284  
 285          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS,
 286  
 287          'captype' => 'write',
 288          'contextlevel' => CONTEXT_COURSE,
 289      ),
 290  
 291      'moodle/restore:restoretargethub' => array(
 292  
 293          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS,
 294  
 295          'captype' => 'write',
 296          'contextlevel' => CONTEXT_COURSE,
 297          'archetypes' => array(
 298              'editingteacher' => CAP_ALLOW,
 299              'manager' => CAP_ALLOW
 300          ),
 301  
 302          'clonepermissionsfrom' =>  'moodle/restore:restorecourse'
 303      ),
 304  
 305      'moodle/restore:restoretargetimport' => array(
 306  
 307          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS,
 308  
 309          'captype' => 'write',
 310          'contextlevel' => CONTEXT_COURSE,
 311          'archetypes' => array(
 312              'editingteacher' => CAP_ALLOW,
 313              'manager' => CAP_ALLOW
 314          ),
 315  
 316          'clonepermissionsfrom' =>  'moodle/site:import'
 317      ),
 318  
 319      'moodle/restore:uploadfile' => array(
 320  
 321          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS,
 322  
 323          'captype' => 'write',
 324          'contextlevel' => CONTEXT_COURSE,
 325          'archetypes' => array(
 326              'editingteacher' => CAP_ALLOW,
 327              'manager' => CAP_ALLOW
 328          ),
 329  
 330          'clonepermissionsfrom' =>  'moodle/site:backupupload'
 331      ),
 332  
 333      'moodle/restore:configure' => array(
 334  
 335          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS,
 336  
 337          'captype' => 'write',
 338          'contextlevel' => CONTEXT_COURSE,
 339          'archetypes' => array(
 340              'editingteacher' => CAP_ALLOW,
 341              'manager' => CAP_ALLOW
 342          )
 343      ),
 344  
 345      'moodle/restore:rolldates' => array(
 346  
 347          'captype' => 'write',
 348          'contextlevel' => CONTEXT_COURSE,
 349          'archetypes' => array(
 350              'coursecreator' => CAP_ALLOW,
 351              'manager' => CAP_ALLOW
 352          )
 353      ),
 354  
 355      'moodle/restore:userinfo' => array(
 356  
 357          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS | RISK_CONFIG,
 358  
 359          'captype' => 'write',
 360          'contextlevel' => CONTEXT_COURSE,
 361          'archetypes' => array(
 362              'manager' => CAP_ALLOW
 363          )
 364      ),
 365  
 366      'moodle/restore:createuser' => array(
 367  
 368          'riskbitmask' => RISK_SPAM | RISK_PERSONAL,
 369  
 370          'captype' => 'write',
 371          'contextlevel' => CONTEXT_SYSTEM,
 372          'archetypes' => array(
 373              'manager' => CAP_ALLOW
 374          )
 375      ),
 376  
 377      'moodle/site:manageblocks' => array(
 378  
 379          'riskbitmask' => RISK_SPAM | RISK_XSS,
 380  
 381          'captype' => 'write',
 382          'contextlevel' => CONTEXT_BLOCK,
 383          'archetypes' => array(
 384              'editingteacher' => CAP_ALLOW,
 385              'manager' => CAP_ALLOW
 386          )
 387      ),
 388  
 389      'moodle/site:accessallgroups' => array(
 390  
 391          'captype' => 'read',
 392          'contextlevel' => CONTEXT_COURSE,
 393          'archetypes' => array(
 394              'teacher' => CAP_ALLOW,
 395              'editingteacher' => CAP_ALLOW,
 396              'manager' => CAP_ALLOW
 397          )
 398      ),
 399  
 400      'moodle/site:viewfullnames' => array(
 401  
 402          'captype' => 'read',
 403          'contextlevel' => CONTEXT_COURSE,
 404          'archetypes' => array(
 405              'teacher' => CAP_ALLOW,
 406              'editingteacher' => CAP_ALLOW,
 407              'manager' => CAP_ALLOW
 408          )
 409      ),
 410  
 411      // In reports that give lists of users, extra information about each user's
 412      // identity (the fields configured in site option showuseridentity) will be
 413      // displayed to users who have this capability.
 414      'moodle/site:viewuseridentity' => array(
 415  
 416          'captype' => 'read',
 417          'contextlevel' => CONTEXT_COURSE,
 418          'archetypes' => array(
 419              'teacher' => CAP_ALLOW,
 420              'editingteacher' => CAP_ALLOW,
 421              'manager' => CAP_ALLOW
 422          )
 423      ),
 424  
 425      'moodle/site:viewreports' => array(
 426  
 427          'riskbitmask' => RISK_PERSONAL,
 428  
 429          'captype' => 'read',
 430          'contextlevel' => CONTEXT_COURSE,
 431          'archetypes' => array(
 432              'teacher' => CAP_ALLOW,
 433              'editingteacher' => CAP_ALLOW,
 434              'manager' => CAP_ALLOW
 435          )
 436      ),
 437  
 438      'moodle/site:trustcontent' => array(
 439  
 440          'riskbitmask' => RISK_XSS,
 441  
 442          'captype' => 'write',
 443          'contextlevel' => CONTEXT_COURSE,
 444          'archetypes' => array(
 445              'editingteacher' => CAP_ALLOW,
 446              'manager' => CAP_ALLOW
 447          )
 448      ),
 449  
 450      'moodle/site:uploadusers' => array(
 451  
 452          'riskbitmask' => RISK_SPAM | RISK_PERSONAL,
 453  
 454          'captype' => 'write',
 455          'contextlevel' => CONTEXT_SYSTEM,
 456          'archetypes' => array(
 457              'manager' => CAP_ALLOW
 458          )
 459      ),
 460  
 461      // Permission to manage filter setting overrides in subcontexts.
 462      'moodle/filter:manage' => array(
 463  
 464          'captype' => 'write',
 465          'contextlevel' => CONTEXT_COURSE,
 466          'archetypes' => array(
 467              'editingteacher' => CAP_ALLOW,
 468              'manager' => CAP_ALLOW,
 469          )
 470      ),
 471  
 472      'moodle/user:create' => array(
 473  
 474          'riskbitmask' => RISK_SPAM | RISK_PERSONAL,
 475  
 476          'captype' => 'write',
 477          'contextlevel' => CONTEXT_SYSTEM,
 478          'archetypes' => array(
 479              'manager' => CAP_ALLOW
 480          )
 481      ),
 482  
 483      'moodle/user:delete' => array(
 484  
 485          'riskbitmask' => RISK_PERSONAL, RISK_DATALOSS,
 486  
 487          'captype' => 'write',
 488          'contextlevel' => CONTEXT_SYSTEM,
 489          'archetypes' => array(
 490              'manager' => CAP_ALLOW
 491          )
 492      ),
 493  
 494      'moodle/user:update' => array(
 495  
 496          'riskbitmask' => RISK_SPAM | RISK_PERSONAL,
 497  
 498          'captype' => 'write',
 499          'contextlevel' => CONTEXT_SYSTEM,
 500          'archetypes' => array(
 501              'manager' => CAP_ALLOW
 502          )
 503      ),
 504  
 505      'moodle/user:viewdetails' => array(
 506  
 507          'captype' => 'read',
 508          'contextlevel' => CONTEXT_COURSE,
 509          'archetypes' => array(
 510              'guest' => CAP_ALLOW,
 511              'student' => CAP_ALLOW,
 512              'teacher' => CAP_ALLOW,
 513              'editingteacher' => CAP_ALLOW,
 514              'manager' => CAP_ALLOW
 515          )
 516      ),
 517  
 518      'moodle/user:viewalldetails' => array(
 519          'riskbitmask' => RISK_PERSONAL,
 520          'captype' => 'read',
 521          'contextlevel' => CONTEXT_USER,
 522          'archetypes' => array(
 523              'manager' => CAP_ALLOW
 524          ),
 525          'clonepermissionsfrom' => 'moodle/user:update'
 526      ),
 527  
 528      'moodle/user:viewlastip' => array(
 529          'riskbitmask' => RISK_PERSONAL,
 530          'captype' => 'read',
 531          'contextlevel' => CONTEXT_USER,
 532          'archetypes' => array(
 533              'manager' => CAP_ALLOW
 534          ),
 535          'clonepermissionsfrom' => 'moodle/user:update'
 536      ),
 537  
 538      'moodle/user:viewhiddendetails' => array(
 539  
 540          'riskbitmask' => RISK_PERSONAL,
 541  
 542          'captype' => 'read',
 543          'contextlevel' => CONTEXT_COURSE,
 544          'archetypes' => array(
 545              'teacher' => CAP_ALLOW,
 546              'editingteacher' => CAP_ALLOW,
 547              'manager' => CAP_ALLOW
 548          )
 549      ),
 550  
 551      'moodle/user:loginas' => array(
 552  
 553          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS | RISK_CONFIG,
 554  
 555          'captype' => 'write',
 556          'contextlevel' => CONTEXT_COURSE,
 557          'archetypes' => array(
 558              'manager' => CAP_ALLOW
 559          )
 560      ),
 561  
 562      // can the user manage the system default profile page?
 563      'moodle/user:managesyspages' => array(
 564  
 565          'riskbitmap' => RISK_SPAM | RISK_PERSONAL | RISK_CONFIG,
 566  
 567          'captype' => 'write',
 568          'contextlevel' => CONTEXT_SYSTEM,
 569          'archetypes' => array(
 570              'manager' => CAP_ALLOW
 571          )
 572      ),
 573  
 574      // can the user manage another user's profile page?
 575      'moodle/user:manageblocks' => array(
 576  
 577          'riskbitmap' => RISK_SPAM | RISK_PERSONAL,
 578  
 579          'captype' => 'write',
 580          'contextlevel' => CONTEXT_USER
 581      ),
 582  
 583      // can the user manage their own profile page?
 584      'moodle/user:manageownblocks' => array(
 585  
 586          'riskbitmap' => RISK_SPAM | RISK_PERSONAL,
 587  
 588          'captype' => 'write',
 589          'contextlevel' => CONTEXT_SYSTEM,
 590          'archetypes' => array(
 591              'user' => CAP_ALLOW
 592          )
 593      ),
 594  
 595      // can the user manage their own files?
 596      'moodle/user:manageownfiles' => array(
 597  
 598          'riskbitmap' => RISK_SPAM | RISK_PERSONAL,
 599  
 600          'captype' => 'write',
 601          'contextlevel' => CONTEXT_SYSTEM,
 602          'archetypes' => array(
 603              'user' => CAP_ALLOW
 604          )
 605      ),
 606  
 607      // Can the user ignore the setting userquota?
 608      // The permissions are cloned from ignorefilesizelimits as it was partly used for that purpose.
 609      'moodle/user:ignoreuserquota' => array(
 610          'riskbitmap' => RISK_SPAM,
 611          'captype' => 'write',
 612          'contextlevel' => CONTEXT_SYSTEM,
 613          'clonepermissionsfrom' => 'moodle/course:ignorefilesizelimits'
 614      ),
 615  
 616      // can the user manage the system default dashboard page?
 617      'moodle/my:configsyspages' => array(
 618  
 619          'riskbitmap' => RISK_SPAM | RISK_PERSONAL | RISK_CONFIG,
 620  
 621          'captype' => 'write',
 622          'contextlevel' => CONTEXT_SYSTEM,
 623          'archetypes' => array(
 624              'manager' => CAP_ALLOW
 625          )
 626      ),
 627  
 628      'moodle/role:assign' => array(
 629  
 630          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS,
 631  
 632          'captype' => 'write',
 633          'contextlevel' => CONTEXT_COURSE,
 634          'archetypes' => array(
 635              'editingteacher' => CAP_ALLOW,
 636              'manager' => CAP_ALLOW
 637          )
 638      ),
 639  
 640      'moodle/role:review' => array(
 641  
 642          'riskbitmask' => RISK_PERSONAL,
 643  
 644          'captype' => 'read',
 645          'contextlevel' => CONTEXT_COURSE,
 646          'archetypes' => array(
 647              'teacher' => CAP_ALLOW,
 648              'editingteacher' => CAP_ALLOW,
 649              'manager' => CAP_ALLOW
 650          )
 651      ),
 652  
 653      'moodle/role:override' => array(
 654  
 655          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS,
 656  
 657          'captype' => 'write',
 658          'contextlevel' => CONTEXT_COURSE,
 659          'archetypes' => array(
 660              'manager' => CAP_ALLOW
 661          )
 662      ),
 663  
 664      'moodle/role:safeoverride' => array(
 665  
 666          'riskbitmask' => RISK_SPAM,
 667  
 668          'captype' => 'write',
 669          'contextlevel' => CONTEXT_COURSE,
 670          'archetypes' => array(
 671              'editingteacher' => CAP_ALLOW
 672          )
 673      ),
 674  
 675      'moodle/role:manage' => array(
 676  
 677          'riskbitmask' => RISK_SPAM | RISK_PERSONAL | RISK_XSS,
 678  
 679          'captype' => 'write',
 680          'contextlevel' => CONTEXT_SYSTEM,
 681          'archetypes' => array(
 682              'manager' => CAP_ALLOW
 683          )
 684      ),
 685  
 686      'moodle/role:switchroles' => array(
 687  
 688          'riskbitmask' => RISK_XSS | RISK_PERSONAL,
 689  
 690          'captype' => 'read',
 691          'contextlevel' => CONTEXT_COURSE,
 692          'archetypes' => array(
 693              'editingteacher' => CAP_ALLOW,
 694              'manager' => CAP_ALLOW
 695          )
 696      ),
 697  
 698      // Create, update and delete course categories. (Deleting a course category
 699      // does not let you delete the courses it contains, unless you also have
 700      // moodle/course: delete.) Creating and deleting requires this permission in
 701      // the parent category.
 702      'moodle/category:manage' => array(
 703  
 704          'riskbitmask' => RISK_XSS,
 705  
 706          'captype' => 'write',
 707          'contextlevel' => CONTEXT_COURSECAT,
 708          'archetypes' => array(
 709              'manager' => CAP_ALLOW
 710          ),
 711          'clonepermissionsfrom' => 'moodle/category:update'
 712      ),
 713  
 714      'moodle/category:viewhiddencategories' => array(
 715  
 716          'captype' => 'read',
 717          'contextlevel' => CONTEXT_COURSECAT,
 718          'archetypes' => array(
 719              'coursecreator' => CAP_ALLOW,
 720              'manager' => CAP_ALLOW
 721          ),
 722          'clonepermissionsfrom' => 'moodle/category:visibility'
 723      ),
 724  
 725      // create, delete, move cohorts in system and course categories,
 726      // (cohorts with component !== null can be only moved)
 727      'moodle/cohort:manage' => array(
 728  
 729          'captype' => 'write',
 730          'contextlevel' => CONTEXT_COURSECAT,
 731          'archetypes' => array(
 732              'manager' => CAP_ALLOW
 733          )
 734      ),
 735  
 736      // add and remove cohort members (only for cohorts where component !== null)
 737      'moodle/cohort:assign' => array(
 738  
 739          'captype' => 'write',
 740          'contextlevel' => CONTEXT_COURSECAT,
 741          'archetypes' => array(
 742              'manager' => CAP_ALLOW
 743          )
 744      ),
 745  
 746      // View visible and hidden cohorts defined in the current context.
 747      'moodle/cohort:view' => array(
 748  
 749          'captype' => 'read',
 750          'contextlevel' => CONTEXT_COURSE,
 751          'archetypes' => array(
 752              'editingteacher' => CAP_ALLOW,
 753              'manager' => CAP_ALLOW
 754          )
 755      ),
 756  
 757      'moodle/course:create' => array(
 758  
 759          'riskbitmask' => RISK_XSS,
 760  
 761          'captype' => 'write',
 762          'contextlevel' => CONTEXT_COURSECAT,
 763          'archetypes' => array(
 764              'coursecreator' => CAP_ALLOW,
 765              'manager' => CAP_ALLOW
 766          )
 767      ),
 768  
 769      'moodle/course:request' => array(
 770          'captype' => 'write',
 771          'contextlevel' => CONTEXT_SYSTEM,
 772          'archetypes' => array(
 773              'user' => CAP_ALLOW,
 774          )
 775      ),
 776  
 777      'moodle/course:delete' => array(
 778  
 779          'riskbitmask' => RISK_DATALOSS,
 780  
 781          'captype' => 'write',
 782          'contextlevel' => CONTEXT_COURSE,
 783          'archetypes' => array(
 784              'manager' => CAP_ALLOW
 785          )
 786      ),
 787  
 788      'moodle/course:update' => array(
 789  
 790          'riskbitmask' => RISK_XSS,
 791  
 792          'captype' => 'write',
 793          'contextlevel' => CONTEXT_COURSE,
 794          'archetypes' => array(
 795              'editingteacher' => CAP_ALLOW,
 796              'manager' => CAP_ALLOW
 797          )
 798      ),
 799  
 800      'moodle/course:view' => array(
 801  
 802          'captype' => 'read',
 803          'contextlevel' => CONTEXT_COURSE,
 804          'archetypes' => array(
 805              'manager' => CAP_ALLOW,
 806          )
 807      ),
 808  
 809      /* review course enrolments - no group restrictions, it is really full access to all participants info*/
 810      'moodle/course:enrolreview' => array(
 811  
 812          'riskbitmask' => RISK_PERSONAL,
 813  
 814          'captype' => 'read',
 815          'contextlevel' => CONTEXT_COURSE,
 816          'archetypes' => array(
 817              'editingteacher' => CAP_ALLOW,
 818              'manager' => CAP_ALLOW,
 819          )
 820      ),
 821  
 822      /* add, remove, hide enrol instances in courses */
 823      'moodle/course:enrolconfig' => array(
 824  
 825          'riskbitmask' => RISK_PERSONAL,
 826  
 827          'captype' => 'write',
 828          'contextlevel' => CONTEXT_COURSE,
 829          'archetypes' => array(
 830              'editingteacher' => CAP_ALLOW,
 831              'manager' => CAP_ALLOW,
 832          )
 833      ),
 834  
 835      'moodle/course:reviewotherusers' => array(
 836  
 837          'captype' => 'read',
 838          'contextlevel' => CONTEXT_COURSE,
 839          'archetypes' => array(
 840              'editingteacher' => CAP_ALLOW,
 841              'manager' => CAP_ALLOW,
 842          ),
 843          'clonepermissionsfrom' => 'moodle/role:assign'
 844      ),
 845  
 846      'moodle/course:bulkmessaging' => array(
 847  
 848          'riskbitmask' => RISK_SPAM,
 849  
 850          'captype' => 'write',
 851          'contextlevel' => CONTEXT_COURSE,
 852          'archetypes' => array(
 853              'teacher' => CAP_ALLOW,
 854              'editingteacher' => CAP_ALLOW,
 855              'manager' => CAP_ALLOW
 856          )
 857      ),
 858  
 859      'moodle/course:viewhiddenuserfields' => array(
 860  
 861          'riskbitmask' => RISK_PERSONAL,
 862  
 863          'captype' => 'read',
 864          'contextlevel' => CONTEXT_COURSE,
 865          'archetypes' => array(
 866              'teacher' => CAP_ALLOW,
 867              'editingteacher' => CAP_ALLOW,
 868              'manager' => CAP_ALLOW
 869          )
 870      ),
 871  
 872      'moodle/course:viewhiddencourses' => array(
 873  
 874          'captype' => 'read',
 875          'contextlevel' => CONTEXT_COURSE,
 876          'archetypes' => array(
 877              'coursecreator' => CAP_ALLOW,
 878              'teacher' => CAP_ALLOW,
 879              'editingteacher' => CAP_ALLOW,
 880              'manager' => CAP_ALLOW
 881          )
 882      ),
 883  
 884      'moodle/course:visibility' => array(
 885  
 886          'captype' => 'write',
 887          'contextlevel' => CONTEXT_COURSE,
 888          'archetypes' => array(
 889              'editingteacher' => CAP_ALLOW,
 890              'manager' => CAP_ALLOW
 891          )
 892      ),
 893  
 894      'moodle/course:managefiles' => array(
 895  
 896          'riskbitmask' => RISK_XSS,
 897  
 898          'captype' => 'write',
 899          'contextlevel' => CONTEXT_COURSE,
 900          'archetypes' => array(
 901              'editingteacher' => CAP_ALLOW,
 902              'manager' => CAP_ALLOW
 903          )
 904      ),
 905  
 906      'moodle/course:ignorefilesizelimits' => array(
 907  
 908          'captype' => 'write',
 909          'contextlevel' => CONTEXT_COURSE,
 910          'archetypes' => array(
 911          )
 912      ),
 913  
 914      'moodle/course:manageactivities' => array(
 915  
 916          'riskbitmask' => RISK_XSS,
 917  
 918          'captype' => 'write',
 919          'contextlevel' => CONTEXT_MODULE,
 920          'archetypes' => array(
 921              'editingteacher' => CAP_ALLOW,
 922              'manager' => CAP_ALLOW
 923          )
 924      ),
 925  
 926      'moodle/course:activityvisibility' => array(
 927  
 928          'captype' => 'write',
 929          'contextlevel' => CONTEXT_MODULE,
 930          'archetypes' => array(
 931              'editingteacher' => CAP_ALLOW,
 932              'manager' => CAP_ALLOW
 933          )
 934      ),
 935  
 936      'moodle/course:viewhiddenactivities' => array(
 937  
 938          'captype' => 'write',
 939          'contextlevel' => CONTEXT_MODULE,
 940          'archetypes' => array(
 941              'teacher' => CAP_ALLOW,
 942              'editingteacher' => CAP_ALLOW,
 943              'manager' => CAP_ALLOW
 944          )
 945      ),
 946  
 947      'moodle/course:viewparticipants' => array(
 948  
 949          'captype' => 'read',
 950          'contextlevel' => CONTEXT_COURSE,
 951          'archetypes' => array(
 952              'student' => CAP_ALLOW,
 953              'teacher' => CAP_ALLOW,
 954              'editingteacher' => CAP_ALLOW,
 955              'manager' => CAP_ALLOW
 956          )
 957      ),
 958  
 959      'moodle/course:changefullname' => array(
 960  
 961          'riskbitmask' => RISK_XSS,
 962  
 963          'captype' => 'write',
 964          'contextlevel' => CONTEXT_COURSE,
 965          'archetypes' => array(
 966              'editingteacher' => CAP_ALLOW,
 967              'manager' => CAP_ALLOW
 968          ),
 969          'clonepermissionsfrom' => 'moodle/course:update'
 970      ),
 971  
 972      'moodle/course:changeshortname' => array(
 973  
 974          'riskbitmask' => RISK_XSS,
 975  
 976          'captype' => 'write',
 977          'contextlevel' => CONTEXT_COURSE,
 978          'archetypes' => array(
 979              'editingteacher' => CAP_ALLOW,
 980              'manager' => CAP_ALLOW
 981          ),
 982          'clonepermissionsfrom' => 'moodle/course:update'
 983      ),
 984  
 985      'moodle/course:renameroles' => array(
 986          'captype' => 'write',
 987          'contextlevel' => CONTEXT_COURSE,
 988          'archetypes' => array(
 989              'editingteacher' => CAP_ALLOW,
 990              'manager' => CAP_ALLOW
 991          ),
 992          'clonepermissionsfrom' => 'moodle/course:update'
 993      ),
 994  
 995      'moodle/course:changeidnumber' => array(
 996  
 997          'riskbitmask' => RISK_XSS,
 998  
 999          'captype' => 'write',
1000          'contextlevel' => CONTEXT_COURSE,
1001          'archetypes' => array(
1002              'editingteacher' => CAP_ALLOW,
1003              'manager' => CAP_ALLOW
1004          ),
1005          'clonepermissionsfrom' => 'moodle/course:update'
1006      ),
1007      'moodle/course:changecategory' => array(
1008          'riskbitmask' => RISK_XSS,
1009  
1010          'captype' => 'write',
1011          'contextlevel' => CONTEXT_COURSE,
1012          'archetypes' => array(
1013              'editingteacher' => CAP_ALLOW,
1014              'manager' => CAP_ALLOW
1015          ),
1016          'clonepermissionsfrom' => 'moodle/course:update'
1017      ),
1018  
1019      'moodle/course:changesummary' => array(
1020          'riskbitmask' => RISK_XSS,
1021  
1022          'captype' => 'write',
1023          'contextlevel' => CONTEXT_COURSE,
1024          'archetypes' => array(
1025              'editingteacher' => CAP_ALLOW,
1026              'manager' => CAP_ALLOW
1027          ),
1028          'clonepermissionsfrom' => 'moodle/course:update'
1029      ),
1030  
1031  
1032      'moodle/site:viewparticipants' => array(
1033  
1034          'captype' => 'read',
1035          'contextlevel' => CONTEXT_SYSTEM,
1036          'archetypes' => array(
1037              'manager' => CAP_ALLOW
1038          )
1039      ),
1040  
1041      'moodle/course:isincompletionreports' => array(
1042          'captype' => 'read',
1043          'contextlevel' => CONTEXT_COURSE,
1044          'archetypes' => array(
1045              'student' => CAP_ALLOW,
1046          ),
1047      ),
1048  
1049      'moodle/course:viewscales' => array(
1050  
1051          'captype' => 'read',
1052          'contextlevel' => CONTEXT_COURSE,
1053          'archetypes' => array(
1054              'student' => CAP_ALLOW,
1055              'teacher' => CAP_ALLOW,
1056              'editingteacher' => CAP_ALLOW,
1057              'manager' => CAP_ALLOW
1058          )
1059      ),
1060  
1061      'moodle/course:managescales' => array(
1062  
1063          'captype' => 'write',
1064          'contextlevel' => CONTEXT_COURSE,
1065          'archetypes' => array(
1066              'editingteacher' => CAP_ALLOW,
1067              'manager' => CAP_ALLOW
1068          )
1069      ),
1070  
1071      'moodle/course:managegroups' => array(
1072  
1073          'captype' => 'write',
1074          'contextlevel' => CONTEXT_COURSE,
1075          'archetypes' => array(
1076              'editingteacher' => CAP_ALLOW,
1077              'manager' => CAP_ALLOW
1078          )
1079      ),
1080  
1081      'moodle/course:reset' => array(
1082  
1083          'riskbitmask' => RISK_DATALOSS,
1084  
1085          'captype' => 'write',
1086          'contextlevel' => CONTEXT_COURSE,
1087          'archetypes' => array(
1088              'editingteacher' => CAP_ALLOW,
1089              'manager' => CAP_ALLOW
1090          )
1091      ),
1092  
1093      'moodle/course:viewsuspendedusers' => array(
1094  
1095          'captype' => 'read',
1096          'contextlevel' => CONTEXT_SYSTEM,
1097          'archetypes' => array(
1098              'editingteacher' => CAP_ALLOW,
1099              'manager' => CAP_ALLOW
1100          )
1101      ),
1102  
1103      'moodle/course:tag' => array(
1104          'riskbitmask' => RISK_SPAM,
1105          'captype' => 'write',
1106          'contextlevel' => CONTEXT_COURSE,
1107          'archetypes' => array(
1108              'manager' => CAP_ALLOW,
1109              'editingteacher' => CAP_ALLOW,
1110          ),
1111          'clonepermissionsfrom' => 'moodle/course:update'
1112      ),
1113  
1114      'moodle/blog:view' => array(
1115  
1116          'captype' => 'read',
1117          'contextlevel' => CONTEXT_SYSTEM,
1118          'archetypes' => array(
1119              'guest' => CAP_ALLOW,
1120              'user' => CAP_ALLOW,
1121              'student' => CAP_ALLOW,
1122              'teacher' => CAP_ALLOW,
1123              'editingteacher' => CAP_ALLOW,
1124              'manager' => CAP_ALLOW
1125          )
1126      ),
1127  
1128      'moodle/blog:search' => array(
1129          'captype' => 'read',
1130          'contextlevel' => CONTEXT_SYSTEM,
1131          'archetypes' => array(
1132              'guest' => CAP_ALLOW,
1133              'user' => CAP_ALLOW,
1134              'student' => CAP_ALLOW,
1135              'teacher' => CAP_ALLOW,
1136              'editingteacher' => CAP_ALLOW,
1137              'manager' => CAP_ALLOW
1138          )
1139      ),
1140  
1141      'moodle/blog:viewdrafts' => array(
1142  
1143          'riskbitmask' => RISK_PERSONAL,
1144          'captype' => 'read',
1145          'contextlevel' => CONTEXT_SYSTEM,
1146          'archetypes' => array(
1147              'manager' => CAP_ALLOW
1148          )
1149      ),
1150  
1151      'moodle/blog:create' => array( // works in CONTEXT_SYSTEM only
1152  
1153          'riskbitmask' => RISK_SPAM,
1154  
1155          'captype' => 'write',
1156          'contextlevel' => CONTEXT_SYSTEM,
1157          'archetypes' => array(
1158              'user' => CAP_ALLOW,
1159              'manager' => CAP_ALLOW
1160          )
1161      ),
1162  
1163      'moodle/blog:manageentries' => array(
1164  
1165          'riskbitmask' => RISK_SPAM,
1166  
1167          'captype' => 'write',
1168          'contextlevel' => CONTEXT_SYSTEM,
1169          'archetypes' => array(
1170              'teacher' => CAP_ALLOW,
1171              'editingteacher' => CAP_ALLOW,
1172              'manager' => CAP_ALLOW
1173          )
1174      ),
1175  
1176      'moodle/blog:manageexternal' => array(
1177  
1178          'riskbitmask' => RISK_SPAM,
1179  
1180          'captype' => 'write',
1181          'contextlevel' => CONTEXT_SYSTEM,
1182          'archetypes' => array(
1183              'student' => CAP_ALLOW,
1184              'user' => CAP_ALLOW,
1185              'teacher' => CAP_ALLOW,
1186              'editingteacher' => CAP_ALLOW,
1187              'manager' => CAP_ALLOW
1188          )
1189      ),
1190  
1191      'moodle/calendar:manageownentries' => array( // works in CONTEXT_SYSTEM only
1192  
1193          'riskbitmask' => RISK_SPAM,
1194  
1195          'captype' => 'write',
1196          'contextlevel' => CONTEXT_COURSE,
1197          'archetypes' => array(
1198              'user' => CAP_ALLOW,
1199              'manager' => CAP_ALLOW
1200          )
1201      ),
1202  
1203      'moodle/calendar:managegroupentries' => array(
1204  
1205          'riskbitmask' => RISK_SPAM,
1206  
1207          'captype' => 'write',
1208          'contextlevel' => CONTEXT_COURSE,
1209          'archetypes' => array(
1210              'teacher' => CAP_ALLOW,
1211              'editingteacher' => CAP_ALLOW,
1212              'manager' => CAP_ALLOW
1213          )
1214      ),
1215  
1216      'moodle/calendar:manageentries' => array(
1217  
1218          'riskbitmask' => RISK_SPAM,
1219  
1220          'captype' => 'write',
1221          'contextlevel' => CONTEXT_COURSE,
1222          'archetypes' => array(
1223              'teacher' => CAP_ALLOW,
1224              'editingteacher' => CAP_ALLOW,
1225              'manager' => CAP_ALLOW
1226          )
1227      ),
1228  
1229      'moodle/user:editprofile' => array(
1230  
1231          'riskbitmask' => RISK_SPAM | RISK_PERSONAL,
1232  
1233          'captype' => 'write',
1234          'contextlevel' => CONTEXT_USER,
1235          'archetypes' => array(
1236              'manager' => CAP_ALLOW
1237          )
1238      ),
1239  
1240      'moodle/user:editownprofile' => array(
1241  
1242          'riskbitmask' => RISK_SPAM,
1243  
1244          'captype' => 'write',
1245          'contextlevel' => CONTEXT_SYSTEM,
1246          'archetypes' => array(
1247              'guest' => CAP_PROHIBIT,
1248              'user' => CAP_ALLOW,
1249              'manager' => CAP_ALLOW
1250          )
1251      ),
1252  
1253      'moodle/user:changeownpassword' => array(
1254  
1255          'captype' => 'write',
1256          'contextlevel' => CONTEXT_SYSTEM,
1257          'archetypes' => array(
1258              'guest' => CAP_PROHIBIT,
1259              'user' => CAP_ALLOW,
1260              'manager' => CAP_ALLOW
1261          )
1262      ),
1263  
1264      // The next 3 might make no sense for some roles, e.g teacher, etc.
1265      // since the next level up is site. These are more for the parent role
1266      'moodle/user:readuserposts' => array(
1267  
1268          'captype' => 'read',
1269          'contextlevel' => CONTEXT_USER,
1270          'archetypes' => array(
1271              'student' => CAP_ALLOW,
1272              'teacher' => CAP_ALLOW,
1273              'editingteacher' => CAP_ALLOW,
1274              'manager' => CAP_ALLOW
1275          )
1276      ),
1277  
1278      'moodle/user:readuserblogs' => array(
1279  
1280          'captype' => 'read',
1281          'contextlevel' => CONTEXT_USER,
1282          'archetypes' => array(
1283              'student' => CAP_ALLOW,
1284              'teacher' => CAP_ALLOW,
1285              'editingteacher' => CAP_ALLOW,
1286              'manager' => CAP_ALLOW
1287          )
1288      ),
1289  
1290      // designed for parent role - not used in legacy roles
1291      'moodle/user:viewuseractivitiesreport' => array(
1292          'riskbitmask' => RISK_PERSONAL,
1293  
1294          'captype' => 'read',
1295          'contextlevel' => CONTEXT_USER,
1296          'archetypes' => array(
1297          )
1298      ),
1299  
1300      //capabilities designed for the new message system configuration
1301      'moodle/user:editmessageprofile' => array(
1302  
1303           'riskbitmask' => RISK_SPAM,
1304  
1305           'captype' => 'write',
1306           'contextlevel' => CONTEXT_USER,
1307           'archetypes' => array(
1308               'manager' => CAP_ALLOW
1309           )
1310       ),
1311  
1312       'moodle/user:editownmessageprofile' => array(
1313  
1314           'captype' => 'write',
1315           'contextlevel' => CONTEXT_SYSTEM,
1316           'archetypes' => array(
1317               'guest' => CAP_PROHIBIT,
1318               'user' => CAP_ALLOW,
1319               'manager' => CAP_ALLOW
1320           )
1321       ),
1322  
1323      'moodle/question:managecategory' => array(
1324          'riskbitmask' => RISK_SPAM | RISK_XSS,
1325          'captype' => 'write',
1326          'contextlevel' => CONTEXT_COURSE,
1327          'archetypes' => array(
1328              'editingteacher' => CAP_ALLOW,
1329              'manager' => CAP_ALLOW
1330          )
1331      ),
1332  
1333      //new in moodle 1.9
1334      'moodle/question:add' => array(
1335          'riskbitmask' => RISK_SPAM | RISK_XSS,
1336          'captype' => 'write',
1337          'contextlevel' => CONTEXT_COURSE,
1338          'archetypes' => array(
1339              'editingteacher' => CAP_ALLOW,
1340              'manager' => CAP_ALLOW
1341          ),
1342          'clonepermissionsfrom' =>  'moodle/question:manage'
1343      ),
1344      'moodle/question:editmine' => array(
1345          'riskbitmask' => RISK_SPAM | RISK_XSS,
1346          'captype' => 'write',
1347          'contextlevel' => CONTEXT_COURSE,
1348          'archetypes' => array(
1349              'editingteacher' => CAP_ALLOW,
1350              'manager' => CAP_ALLOW
1351          ),
1352          'clonepermissionsfrom' =>  'moodle/question:manage'
1353      ),
1354      'moodle/question:editall' => array(
1355          'riskbitmask' => RISK_SPAM | RISK_XSS,
1356          'captype' => 'write',
1357          'contextlevel' => CONTEXT_COURSE,
1358          'archetypes' => array(
1359              'editingteacher' => CAP_ALLOW,
1360              'manager' => CAP_ALLOW
1361          ),
1362          'clonepermissionsfrom' =>  'moodle/question:manage'
1363      ),
1364      'moodle/question:viewmine' => array(
1365          'captype' => 'read',
1366          'contextlevel' => CONTEXT_COURSE,
1367          'archetypes' => array(
1368              'editingteacher' => CAP_ALLOW,
1369              'manager' => CAP_ALLOW
1370          ),
1371          'clonepermissionsfrom' =>  'moodle/question:manage'
1372      ),
1373      'moodle/question:viewall' => array(
1374          'captype' => 'read',
1375          'contextlevel' => CONTEXT_COURSE,
1376          'archetypes' => array(
1377              'editingteacher' => CAP_ALLOW,
1378              'manager' => CAP_ALLOW
1379          ),
1380          'clonepermissionsfrom' =>  'moodle/question:manage'
1381      ),
1382      'moodle/question:usemine' => array(
1383          'captype' => 'read',
1384          'contextlevel' => CONTEXT_COURSE,
1385          'archetypes' => array(
1386              'editingteacher' => CAP_ALLOW,
1387              'manager' => CAP_ALLOW
1388          ),
1389          'clonepermissionsfrom' =>  'moodle/question:manage'
1390      ),
1391      'moodle/question:useall' => array(
1392          'captype' => 'read',
1393          'contextlevel' => CONTEXT_COURSE,
1394          'archetypes' => array(
1395              'editingteacher' => CAP_ALLOW,
1396              'manager' => CAP_ALLOW
1397          ),
1398          'clonepermissionsfrom' =>  'moodle/question:manage'
1399      ),
1400      'moodle/question:movemine' => array(
1401          'captype' => 'write',
1402          'contextlevel' => CONTEXT_COURSE,
1403          'archetypes' => array(
1404              'editingteacher' => CAP_ALLOW,
1405              'manager' => CAP_ALLOW
1406          ),
1407          'clonepermissionsfrom' =>  'moodle/question:manage'
1408      ),
1409      'moodle/question:moveall' => array(
1410          'captype' => 'write',
1411          'contextlevel' => CONTEXT_COURSE,
1412          'archetypes' => array(
1413              'editingteacher' => CAP_ALLOW,
1414              'manager' => CAP_ALLOW
1415          ),
1416          'clonepermissionsfrom' =>  'moodle/question:manage'
1417      ),
1418      //END new in moodle 1.9
1419  
1420      // Configure the installed question types.
1421      'moodle/question:config' => array(
1422          'riskbitmask' => RISK_CONFIG,
1423          'captype' => 'write',
1424          'contextlevel' => CONTEXT_SYSTEM,
1425          'archetypes' => array(
1426              'manager' => CAP_ALLOW
1427          )
1428      ),
1429  
1430      // While attempting questions, the ability to flag particular questions for later reference.
1431      'moodle/question:flag' => array(
1432          'captype' => 'write',
1433          'contextlevel' => CONTEXT_COURSE,
1434          'archetypes' => array(
1435              'student' => CAP_ALLOW,
1436              'teacher' => CAP_ALLOW,
1437              'editingteacher' => CAP_ALLOW,
1438              'manager' => CAP_ALLOW
1439          )
1440      ),
1441  
1442      'moodle/site:doclinks' => array(
1443          'captype' => 'read',
1444          'contextlevel' => CONTEXT_SYSTEM,
1445          'archetypes' => array(
1446              'teacher' => CAP_ALLOW,
1447              'editingteacher' => CAP_ALLOW,
1448              'manager' => CAP_ALLOW
1449          )
1450      ),
1451  
1452      'moodle/course:sectionvisibility' => array(
1453  
1454          'captype' => 'write',
1455          'contextlevel' => CONTEXT_COURSE,
1456          'archetypes' => array(
1457              'editingteacher' => CAP_ALLOW,
1458              'manager' => CAP_ALLOW
1459          )
1460      ),
1461  
1462      'moodle/course:useremail' => array(
1463  
1464          'captype' => 'write',
1465          'contextlevel' => CONTEXT_COURSE,
1466          'archetypes' => array(
1467              'editingteacher' => CAP_ALLOW,
1468              'manager' => CAP_ALLOW
1469          )
1470      ),
1471  
1472      'moodle/course:viewhiddensections' => array(
1473  
1474          'captype' => 'write',
1475          'contextlevel' => CONTEXT_COURSE,
1476          'archetypes' => array(
1477              'editingteacher' => CAP_ALLOW,
1478              'manager' => CAP_ALLOW
1479          )
1480      ),
1481  
1482      'moodle/course:setcurrentsection' => array(
1483  
1484          'captype' => 'write',
1485          'contextlevel' => CONTEXT_COURSE,
1486          'archetypes' => array(
1487              'editingteacher' => CAP_ALLOW,
1488              'manager' => CAP_ALLOW
1489          )
1490      ),
1491  
1492      'moodle/course:movesections' => array(
1493  
1494          'captype' => 'write',
1495          'contextlevel' => CONTEXT_COURSE,
1496          'archetypes' => array(
1497              'editingteacher' => CAP_ALLOW,
1498              'manager' => CAP_ALLOW
1499          ),
1500          'clonepermissionsfrom' => 'moodle/course:update'
1501      ),
1502  
1503      'moodle/site:mnetlogintoremote' => array(
1504  
1505          'captype' => 'read',
1506          'contextlevel' => CONTEXT_SYSTEM,
1507          'archetypes' => array(
1508          )
1509      ),
1510  
1511      'moodle/grade:viewall' => array(
1512          'riskbitmask' => RISK_PERSONAL,
1513          'captype' => 'read',
1514          'contextlevel' => CONTEXT_COURSE, // and CONTEXT_USER
1515          'archetypes' => array(
1516              'teacher' => CAP_ALLOW,
1517              'editingteacher' => CAP_ALLOW,
1518              'manager' => CAP_ALLOW
1519          ),
1520          'clonepermissionsfrom' => 'moodle/course:viewcoursegrades'
1521      ),
1522  
1523      'moodle/grade:view' => array(
1524          'captype' => 'read',
1525          'contextlevel' => CONTEXT_COURSE,
1526          'archetypes' => array(
1527              'student' => CAP_ALLOW
1528          )
1529      ),
1530  
1531      'moodle/grade:viewhidden' => array(
1532          'riskbitmask' => RISK_PERSONAL,
1533          'captype' => 'read',
1534          'contextlevel' => CONTEXT_COURSE,
1535          'archetypes' => array(
1536              'teacher' => CAP_ALLOW,
1537              'editingteacher' => CAP_ALLOW,
1538              'manager' => CAP_ALLOW
1539          ),
1540          'clonepermissionsfrom' => 'moodle/course:viewcoursegrades'
1541      ),
1542  
1543      'moodle/grade:import' => array(
1544          'riskbitmask' => RISK_PERSONAL | RISK_XSS,
1545          'captype' => 'write',
1546          'contextlevel' => CONTEXT_COURSE,
1547          'archetypes' => array(
1548              'editingteacher' => CAP_ALLOW,
1549              'manager' => CAP_ALLOW
1550          ),
1551          'clonepermissionsfrom' => 'moodle/course:managegrades'
1552      ),
1553  
1554      'moodle/grade:export' => array(
1555          'riskbitmask' => RISK_PERSONAL,
1556          'captype' => 'read',
1557          'contextlevel' => CONTEXT_COURSE,
1558          'archetypes' => array(
1559              'teacher' => CAP_ALLOW,
1560              'editingteacher' => CAP_ALLOW,
1561              'manager' => CAP_ALLOW
1562          ),
1563          'clonepermissionsfrom' => 'moodle/course:managegrades'
1564      ),
1565  
1566      'moodle/grade:manage' => array(
1567          'riskbitmask' => RISK_PERSONAL | RISK_XSS,
1568          'captype' => 'write',
1569          'contextlevel' => CONTEXT_COURSE,
1570          'archetypes' => array(
1571              'editingteacher' => CAP_ALLOW,
1572              'manager' => CAP_ALLOW
1573          ),
1574          'clonepermissionsfrom' => 'moodle/course:managegrades'
1575      ),
1576  
1577      'moodle/grade:edit' => array(
1578          'riskbitmask' => RISK_PERSONAL | RISK_XSS,
1579          'captype' => 'write',
1580          'contextlevel' => CONTEXT_COURSE,
1581          'archetypes' => array(
1582              'editingteacher' => CAP_ALLOW,
1583              'manager' => CAP_ALLOW
1584          ),
1585          'clonepermissionsfrom' => 'moodle/course:managegrades'
1586      ),
1587  
1588      // ability to define advanced grading forms in activities either from scratch
1589      // or from a shared template
1590      'moodle/grade:managegradingforms' => array(
1591          'riskbitmask' => RISK_PERSONAL | RISK_XSS,
1592          'captype' => 'write',
1593          'contextlevel' => CONTEXT_COURSE,
1594          'archetypes' => array(
1595              'editingteacher' => CAP_ALLOW,
1596              'manager' => CAP_ALLOW
1597          ),
1598          'clonepermissionsfrom' => 'moodle/course:managegrades'
1599      ),
1600  
1601      // ability to save a grading form as a new shared template and eventually edit
1602      // and remove own templates (templates originally shared by that user)
1603      'moodle/grade:sharegradingforms' => array(
1604          'riskbitmask' => RISK_XSS,
1605          'captype' => 'write',
1606          'contextlevel' => CONTEXT_SYSTEM,
1607          'archetypes' => array(
1608              'manager' => CAP_ALLOW
1609          ),
1610      ),
1611  
1612      // ability to edit and remove any shared template, even those originally shared
1613      // by other users
1614      'moodle/grade:managesharedforms' => array(
1615          'riskbitmask' => RISK_XSS,
1616          'captype' => 'write',
1617          'contextlevel' => CONTEXT_SYSTEM,
1618          'archetypes' => array(
1619              'manager' => CAP_ALLOW
1620          ),
1621      ),
1622  
1623      'moodle/grade:manageoutcomes' => array(
1624          'captype' => 'write',
1625          'contextlevel' => CONTEXT_COURSE,
1626          'archetypes' => array(
1627              'editingteacher' => CAP_ALLOW,
1628              'manager' => CAP_ALLOW
1629          ),
1630          'clonepermissionsfrom' => 'moodle/course:managegrades'
1631      ),
1632  
1633      'moodle/grade:manageletters' => array(
1634          'captype' => 'write',
1635          'contextlevel' => CONTEXT_COURSE,
1636          'archetypes' => array(
1637              'editingteacher' => CAP_ALLOW,
1638              'manager' => CAP_ALLOW
1639          ),
1640          'clonepermissionsfrom' => 'moodle/course:managegrades'
1641      ),
1642  
1643      'moodle/grade:hide' => array(
1644          'captype' => 'write',
1645          'contextlevel' => CONTEXT_COURSE,
1646          'archetypes' => array(
1647              'editingteacher' => CAP_ALLOW,
1648              'manager' => CAP_ALLOW
1649          )
1650      ),
1651  
1652      'moodle/grade:lock' => array(
1653          'captype' => 'write',
1654          'contextlevel' => CONTEXT_COURSE,
1655          'archetypes' => array(
1656              'editingteacher' => CAP_ALLOW,
1657              'manager' => CAP_ALLOW
1658          )
1659      ),
1660  
1661      'moodle/grade:unlock' => array(
1662          'captype' => 'write',
1663          'contextlevel' => CONTEXT_COURSE,
1664          'archetypes' => array(
1665              'editingteacher' => CAP_ALLOW,
1666              'manager' => CAP_ALLOW
1667          )
1668      ),
1669  
1670      'moodle/my:manageblocks' => array(
1671          'captype' => 'write',
1672          'contextlevel' => CONTEXT_SYSTEM,
1673          'archetypes' => array(
1674              'user' => CAP_ALLOW
1675          )
1676      ),
1677  
1678      'moodle/notes:view' => array(
1679          'captype' => 'read',
1680          'contextlevel' => CONTEXT_COURSE,
1681          'archetypes' => array(
1682              'teacher' => CAP_ALLOW,
1683              'editingteacher' => CAP_ALLOW,
1684              'manager' => CAP_ALLOW
1685          )
1686      ),
1687  
1688      'moodle/notes:manage' => array(
1689          'riskbitmask' => RISK_SPAM,
1690  
1691          'captype' => 'write',
1692          'contextlevel' => CONTEXT_COURSE,
1693          'archetypes' => array(
1694              'teacher' => CAP_ALLOW,
1695              'editingteacher' => CAP_ALLOW,
1696              'manager' => CAP_ALLOW
1697          )
1698      ),
1699  
1700      'moodle/tag:manage' => array(
1701          'riskbitmask' => RISK_SPAM,
1702  
1703          'captype' => 'write',
1704          'contextlevel' => CONTEXT_SYSTEM,
1705          'archetypes' => array(
1706              'manager' => CAP_ALLOW
1707          )
1708      ),
1709  
1710      'moodle/tag:edit' => array(
1711          'riskbitmask' => RISK_SPAM,
1712  
1713          'captype' => 'write',
1714          'contextlevel' => CONTEXT_SYSTEM,
1715          'archetypes' => array(
1716              'manager' => CAP_ALLOW
1717          )
1718      ),
1719  
1720      'moodle/tag:flag' => array(
1721          'riskbitmask' => RISK_SPAM,
1722  
1723          'captype' => 'write',
1724          'contextlevel' => CONTEXT_SYSTEM,
1725          'archetypes' => array(
1726              'user' => CAP_ALLOW
1727          )
1728      ),
1729  
1730      'moodle/tag:editblocks' => array(
1731          'captype' => 'write',
1732          'contextlevel' => CONTEXT_SYSTEM,
1733          'archetypes' => array(
1734              'teacher' => CAP_ALLOW,
1735              'editingteacher' => CAP_ALLOW,
1736              'manager' => CAP_ALLOW
1737          )
1738      ),
1739  
1740      'moodle/block:view' => array(
1741          'captype' => 'read',
1742          'contextlevel' => CONTEXT_BLOCK,
1743          'archetypes' => array(
1744              'guest' => CAP_ALLOW,
1745              'user' => CAP_ALLOW,
1746              'student' => CAP_ALLOW,
1747              'teacher' => CAP_ALLOW,
1748              'editingteacher' => CAP_ALLOW,
1749          )
1750      ),
1751  
1752      'moodle/block:edit' => array(
1753          'riskbitmask' => RISK_SPAM | RISK_XSS,
1754  
1755          'captype' => 'write',
1756          'contextlevel' => CONTEXT_BLOCK,
1757          'archetypes' => array(
1758              'editingteacher' => CAP_ALLOW,
1759              'manager' => CAP_ALLOW
1760          )
1761      ),
1762  
1763      'moodle/portfolio:export' => array(
1764          'captype' => 'read',
1765          'contextlevel' => CONTEXT_SYSTEM,
1766          'archetypes' => array(
1767              'user' => CAP_ALLOW,
1768              'student' => CAP_ALLOW,
1769              'teacher' => CAP_ALLOW,
1770              'editingteacher' => CAP_ALLOW,
1771          )
1772      ),
1773      'moodle/comment:view' => array(
1774          'captype' => 'read',
1775          'contextlevel' => CONTEXT_COURSE,
1776          'archetypes' => array(
1777              'frontpage' => CAP_ALLOW,
1778              'guest' => CAP_ALLOW,
1779              'user' => CAP_ALLOW,
1780              'student' => CAP_ALLOW,
1781              'teacher' => CAP_ALLOW,
1782              'editingteacher' => CAP_ALLOW,
1783              'manager' => CAP_ALLOW
1784          )
1785      ),
1786      'moodle/comment:post' => array(
1787  
1788          'riskbitmask' => RISK_SPAM | RISK_PERSONAL,
1789          'captype' => 'write',
1790          'contextlevel' => CONTEXT_COURSE,
1791          'archetypes' => array(
1792              'user' => CAP_ALLOW,
1793              'student' => CAP_ALLOW,
1794              'teacher' => CAP_ALLOW,
1795              'editingteacher' => CAP_ALLOW,
1796              'manager' => CAP_ALLOW
1797          )
1798      ),
1799      'moodle/comment:delete' => array(
1800  
1801          'riskbitmask' => RISK_DATALOSS,
1802          'captype' => 'write',
1803          'contextlevel' => CONTEXT_COURSE,
1804          'archetypes' => array(
1805              'editingteacher' => CAP_ALLOW,
1806              'manager' => CAP_ALLOW
1807          )
1808      ),
1809      'moodle/webservice:createtoken' => array(
1810  
1811          'riskbitmask' => RISK_CONFIG | RISK_DATALOSS | RISK_SPAM | RISK_PERSONAL | RISK_XSS,
1812          'captype' => 'write',
1813          'contextlevel' => CONTEXT_SYSTEM,
1814          'archetypes' => array(
1815              'manager' => CAP_ALLOW
1816          )
1817      ),
1818      'moodle/webservice:createmobiletoken' => array(
1819  
1820          'riskbitmask' => RISK_SPAM | RISK_PERSONAL,
1821          'captype' => 'write',
1822          'contextlevel' => CONTEXT_SYSTEM,
1823          'archetypes' => array(
1824              'user' => CAP_ALLOW
1825          )
1826      ),
1827      'moodle/rating:view' => array(
1828  
1829          'captype' => 'read',
1830          'contextlevel' => CONTEXT_COURSE,
1831          'archetypes' => array(
1832              'user' => CAP_ALLOW,
1833              'student' => CAP_ALLOW,
1834              'teacher' => CAP_ALLOW,
1835              'editingteacher' => CAP_ALLOW,
1836              'manager' => CAP_ALLOW
1837          )
1838      ),
1839      'moodle/rating:viewany' => array(
1840  
1841          'riskbitmask' => RISK_PERSONAL,
1842          'captype' => 'read',
1843          'contextlevel' => CONTEXT_COURSE,
1844          'archetypes' => array(
1845              'user' => CAP_ALLOW,
1846              'student' => CAP_ALLOW,
1847              'teacher' => CAP_ALLOW,
1848              'editingteacher' => CAP_ALLOW,
1849              'manager' => CAP_ALLOW
1850          )
1851      ),
1852      'moodle/rating:viewall' => array(
1853  
1854          'riskbitmask' => RISK_PERSONAL,
1855          'captype' => 'read',
1856          'contextlevel' => CONTEXT_COURSE,
1857          'archetypes' => array(
1858              'user' => CAP_ALLOW,
1859              'student' => CAP_ALLOW,
1860              'teacher' => CAP_ALLOW,
1861              'editingteacher' => CAP_ALLOW,
1862              'manager' => CAP_ALLOW
1863          )
1864      ),
1865      'moodle/rating:rate' => array(
1866  
1867          'captype' => 'write',
1868          'contextlevel' => CONTEXT_COURSE,
1869          'archetypes' => array(
1870              'user' => CAP_ALLOW,
1871              'student' => CAP_ALLOW,
1872              'teacher' => CAP_ALLOW,
1873              'editingteacher' => CAP_ALLOW,
1874              'manager' => CAP_ALLOW
1875          )
1876      ),
1877       'moodle/course:publish' => array(
1878  
1879          'captype' => 'write',
1880          'riskbitmask' => RISK_SPAM | RISK_PERSONAL,
1881          'contextlevel' => CONTEXT_SYSTEM,
1882          'archetypes' => array(
1883              'manager' => CAP_ALLOW
1884          )
1885      ),
1886      'moodle/course:markcomplete' => array(
1887          'captype' => 'write',
1888          'contextlevel' => CONTEXT_COURSE,
1889          'archetypes' => array(
1890              'teacher' => CAP_ALLOW,
1891              'editingteacher' => CAP_ALLOW,
1892              'manager' => CAP_ALLOW
1893          )
1894      ),
1895      'moodle/community:add' => array(
1896          'captype' => 'write',
1897          'contextlevel' => CONTEXT_SYSTEM,
1898          'archetypes' => array(
1899              'manager' => CAP_ALLOW,
1900              'teacher' => CAP_ALLOW,
1901              'editingteacher' => CAP_ALLOW,
1902          )
1903      ),
1904      'moodle/community:download' => array(
1905          'captype' => 'write',
1906          'contextlevel' => CONTEXT_SYSTEM,
1907          'archetypes' => array(
1908              'manager' => CAP_ALLOW,
1909              'editingteacher' => CAP_ALLOW,
1910          )
1911      ),
1912  
1913      // Badges.
1914      'moodle/badges:manageglobalsettings' => array(
1915          'riskbitmask'  => RISK_DATALOSS | RISK_CONFIG,
1916          'captype'      => 'write',
1917          'contextlevel' => CONTEXT_SYSTEM,
1918          'archetypes'   => array(
1919              'manager'       => CAP_ALLOW,
1920          )
1921      ),
1922  
1923      // View available badges without earning them.
1924      'moodle/badges:viewbadges' => array(
1925          'captype'       => 'read',
1926          'contextlevel'  => CONTEXT_COURSE,
1927          'archetypes'    => array(
1928              'user'          => CAP_ALLOW,
1929          )
1930      ),
1931  
1932      // Manage badges on own private badges page.
1933      'moodle/badges:manageownbadges' => array(
1934          'riskbitmap'    => RISK_SPAM,
1935          'captype'       => 'write',
1936          'contextlevel'  => CONTEXT_USER,
1937          'archetypes'    => array(
1938              'user'    => CAP_ALLOW
1939          )
1940      ),
1941  
1942      // View public badges in other users' profiles.
1943      'moodle/badges:viewotherbadges' => array(
1944          'riskbitmap'    => RISK_PERSONAL,
1945          'captype'       => 'read',
1946          'contextlevel'  => CONTEXT_USER,
1947          'archetypes'    => array(
1948              'user'    => CAP_ALLOW
1949          )
1950      ),
1951  
1952      // Earn badge.
1953      'moodle/badges:earnbadge' => array(
1954          'captype'       => 'write',
1955          'contextlevel'  => CONTEXT_COURSE,
1956          'archetypes'    => array(
1957              'user'           => CAP_ALLOW,
1958          )
1959      ),
1960  
1961      // Create/duplicate badges.
1962      'moodle/badges:createbadge' => array(
1963          'riskbitmask'  => RISK_SPAM,
1964          'captype'      => 'write',
1965          'contextlevel' => CONTEXT_COURSE,
1966          'archetypes'   => array(
1967              'manager'        => CAP_ALLOW,
1968              'editingteacher' => CAP_ALLOW,
1969          )
1970      ),
1971  
1972      // Delete badges.
1973      'moodle/badges:deletebadge' => array(
1974          'riskbitmask'  => RISK_DATALOSS,
1975          'captype'      => 'write',
1976          'contextlevel' => CONTEXT_COURSE,
1977          'archetypes'   => array(
1978              'manager'        => CAP_ALLOW,
1979              'editingteacher' => CAP_ALLOW,
1980          )
1981      ),
1982  
1983      // Set up/edit badge details.
1984      'moodle/badges:configuredetails' => array(
1985          'riskbitmask'  => RISK_SPAM,
1986          'captype'      => 'write',
1987          'contextlevel' => CONTEXT_COURSE,
1988          'archetypes'   => array(
1989              'manager'        => CAP_ALLOW,
1990              'editingteacher' => CAP_ALLOW,
1991          )
1992      ),
1993  
1994      // Set up/edit criteria of earning a badge.
1995      'moodle/badges:configurecriteria' => array(
1996          'riskbitmask'  => RISK_XSS,
1997          'captype'      => 'write',
1998          'contextlevel' => CONTEXT_COURSE,
1999          'archetypes'   => array(
2000              'manager'        => CAP_ALLOW,
2001              'editingteacher' => CAP_ALLOW,
2002          )
2003      ),
2004  
2005      // Configure badge messages.
2006      'moodle/badges:configuremessages' => array(
2007          'riskbitmask'  => RISK_SPAM,
2008          'captype'      => 'write',
2009          'contextlevel' => CONTEXT_COURSE,
2010          'archetypes'   => array(
2011              'manager'        => CAP_ALLOW,
2012              'editingteacher' => CAP_ALLOW,
2013          )
2014      ),
2015  
2016      // Award badge to a user.
2017      'moodle/badges:awardbadge' => array(
2018          'riskbitmask'  => RISK_SPAM,
2019          'captype'      => 'write',
2020          'contextlevel' => CONTEXT_COURSE,
2021          'archetypes'   => array(
2022              'manager'        => CAP_ALLOW,
2023              'teacher'        => CAP_ALLOW,
2024              'editingteacher' => CAP_ALLOW,
2025          )
2026      ),
2027  
2028      // View users who earned a specific badge without being able to award a badge.
2029      'moodle/badges:viewawarded' => array(
2030          'riskbitmask'  => RISK_PERSONAL,
2031          'captype'      => 'read',
2032          'contextlevel' => CONTEXT_COURSE,
2033          'archetypes'   => array(
2034                  'manager'        => CAP_ALLOW,
2035                  'teacher'        => CAP_ALLOW,
2036                  'editingteacher' => CAP_ALLOW,
2037          )
2038      ),
2039  
2040      'moodle/site:forcelanguage' => array(
2041          'captype' => 'read',
2042          'contextlevel' => CONTEXT_SYSTEM,
2043          'archetypes' => array(
2044          )
2045      ),
2046  
2047      // Perform site-wide search queries through the search API.
2048      'moodle/search:query' => array(
2049          'captype' => 'read',
2050          'contextlevel' => CONTEXT_SYSTEM,
2051          'archetypes' => array(
2052              'guest' => CAP_ALLOW,
2053              'user' => CAP_ALLOW,
2054              'student' => CAP_ALLOW,
2055              'teacher' => CAP_ALLOW,
2056              'editingteacher' => CAP_ALLOW,
2057              'manager' => CAP_ALLOW
2058          )
2059      ),
2060  
2061      // Competencies.
2062      'moodle/competency:competencymanage' => array(
2063          'captype' => 'write',
2064          'contextlevel' => CONTEXT_COURSECAT,
2065          'archetypes' => array(
2066              'manager' => CAP_ALLOW
2067          )
2068      ),
2069      'moodle/competency:competencyview' => array(
2070          'captype' => 'read',
2071          'contextlevel' => CONTEXT_COURSECAT,
2072          'archetypes' => array(
2073              'user' => CAP_ALLOW
2074          ),
2075      ),
2076      'moodle/competency:competencygrade' => array(
2077          'captype' => 'write',
2078          'contextlevel' => CONTEXT_COURSE, // And CONTEXT_USER.
2079          'archetypes' => array(
2080              'editingteacher' => CAP_ALLOW,
2081              'teacher' => CAP_ALLOW,
2082              'manager' => CAP_ALLOW
2083          ),
2084      ),
2085      // Course competencies.
2086      'moodle/competency:coursecompetencymanage' => array(
2087          'captype' => 'write',
2088          'contextlevel' => CONTEXT_COURSE,
2089          'archetypes' => array(
2090              'editingteacher' => CAP_ALLOW,
2091              'manager' => CAP_ALLOW
2092          ),
2093      ),
2094      'moodle/competency:coursecompetencyconfigure' => array(
2095          'captype' => 'write',
2096          'contextlevel' => CONTEXT_MODULE,
2097          'archetypes' => array(
2098              'manager' => CAP_ALLOW
2099          ),
2100      ),
2101      'moodle/competency:coursecompetencygradable' => array(
2102          'captype' => 'read',
2103          'contextlevel' => CONTEXT_COURSE,
2104          'archetypes' => array(
2105              'student' => CAP_ALLOW
2106          ),
2107          'clonepermissionsfrom' => 'moodle/course:isincompletionreports'
2108      ),
2109      'moodle/competency:coursecompetencyview' => array(
2110          'captype' => 'read',
2111          'contextlevel' => CONTEXT_COURSE,
2112          'archetypes' => array(
2113              'user' => CAP_ALLOW
2114          ),
2115      ),
2116      // Evidence.
2117      'moodle/competency:evidencedelete' => array(
2118          'captype' => 'write',
2119          'contextlevel' => CONTEXT_USER,
2120          'archetypes' => array(
2121          ),
2122          'clonepermissionsfrom' => 'moodle/site:config'
2123      ),
2124      // User plans.
2125      'moodle/competency:planmanage' => array(
2126          'captype' => 'write',
2127          'contextlevel' => CONTEXT_USER,
2128          'archetypes' => array(
2129              'manager' => CAP_ALLOW
2130          ),
2131      ),
2132      'moodle/competency:planmanagedraft' => array(
2133          'captype' => 'write',
2134          'contextlevel' => CONTEXT_USER,
2135          'archetypes' => array(
2136              'manager' => CAP_ALLOW
2137          ),
2138      ),
2139      'moodle/competency:planmanageown' => array(
2140          'captype' => 'write',
2141          'contextlevel' => CONTEXT_USER,
2142          'archetypes' => array(
2143          ),
2144      ),
2145      'moodle/competency:planmanageowndraft' => array(
2146          'captype' => 'write',
2147          'contextlevel' => CONTEXT_USER,
2148          'archetypes' => array(
2149          ),
2150      ),
2151      'moodle/competency:planview' => array(
2152          'captype' => 'read',
2153          'contextlevel' => CONTEXT_USER,
2154          'archetypes' => array(
2155              'manager' => CAP_ALLOW
2156          ),
2157      ),
2158      'moodle/competency:planviewdraft' => array(
2159          'captype' => 'read',
2160          'contextlevel' => CONTEXT_USER,
2161          'archetypes' => array(
2162              'manager' => CAP_ALLOW
2163          ),
2164      ),
2165      'moodle/competency:planviewown' => array(
2166          'captype' => 'read',
2167          'contextlevel' => CONTEXT_USER,
2168          'archetypes' => array(
2169              'user' => CAP_ALLOW
2170          ),
2171      ),
2172      'moodle/competency:planviewowndraft' => array(
2173          'captype' => 'read',
2174          'contextlevel' => CONTEXT_USER,
2175          'archetypes' => array(
2176          ),
2177      ),
2178      'moodle/competency:planrequestreview' => array(
2179          'captype' => 'write',
2180          'contextlevel' => CONTEXT_USER,
2181          'archetypes' => array(
2182              'manager' => CAP_ALLOW
2183          )
2184      ),
2185      'moodle/competency:planrequestreviewown' => array(
2186          'captype' => 'write',
2187          'contextlevel' => CONTEXT_USER,
2188          'archetypes' => array(
2189              'user' => CAP_ALLOW
2190          )
2191      ),
2192      'moodle/competency:planreview' => array(
2193          'captype' => 'write',
2194          'contextlevel' => CONTEXT_USER,
2195          'archetypes' => array(
2196              'manager' => CAP_ALLOW
2197          ),
2198      ),
2199      'moodle/competency:plancomment' => array(
2200          'captype' => 'write',
2201          'contextlevel' => CONTEXT_USER,
2202          'archetypes' => array(
2203              'manager' => CAP_ALLOW
2204          ),
2205      ),
2206      'moodle/competency:plancommentown' => array(
2207          'captype' => 'write',
2208          'contextlevel' => CONTEXT_USER,
2209          'archetypes' => array(
2210              'user' => CAP_ALLOW
2211          ),
2212      ),
2213      // User competencies.
2214      'moodle/competency:usercompetencyview' => array(
2215          'captype' => 'read',
2216          'contextlevel' => CONTEXT_USER,     // And CONTEXT_COURSE.
2217          'archetypes' => array(
2218              'manager' => CAP_ALLOW,
2219              'editingteacher' => CAP_ALLOW,
2220              'teacher' => CAP_ALLOW
2221          )
2222      ),
2223      'moodle/competency:usercompetencyrequestreview' => array(
2224          'captype' => 'write',
2225          'contextlevel' => CONTEXT_USER,
2226          'archetypes' => array(
2227              'manager' => CAP_ALLOW
2228          )
2229      ),
2230      'moodle/competency:usercompetencyrequestreviewown' => array(
2231          'captype' => 'write',
2232          'contextlevel' => CONTEXT_USER,
2233          'archetypes' => array(
2234              'user' => CAP_ALLOW
2235          )
2236      ),
2237      'moodle/competency:usercompetencyreview' => array(
2238          'captype' => 'write',
2239          'contextlevel' => CONTEXT_USER,
2240          'archetypes' => array(
2241              'manager' => CAP_ALLOW
2242          ),
2243      ),
2244      'moodle/competency:usercompetencycomment' => array(
2245          'captype' => 'write',
2246          'contextlevel' => CONTEXT_USER,
2247          'archetypes' => array(
2248              'manager' => CAP_ALLOW
2249          ),
2250      ),
2251      'moodle/competency:usercompetencycommentown' => array(
2252          'captype' => 'write',
2253          'contextlevel' => CONTEXT_USER,
2254          'archetypes' => array(
2255              'user' => CAP_ALLOW
2256          ),
2257      ),
2258      // Template.
2259      'moodle/competency:templatemanage' => array(
2260          'captype' => 'write',
2261          'contextlevel' => CONTEXT_COURSECAT,
2262          'archetypes' => array(
2263              'manager' => CAP_ALLOW
2264          ),
2265      ),
2266      'moodle/competency:templateview' => array(
2267          'captype' => 'read',
2268          'contextlevel' => CONTEXT_COURSECAT,
2269          'archetypes' => array(
2270              'manager' => CAP_ALLOW
2271          ),
2272      ),
2273      // User evidence.
2274      'moodle/competency:userevidencemanage' => array(
2275          'captype' => 'write',
2276          'contextlevel' => CONTEXT_USER,
2277          'archetypes' => array(
2278              'manager' => CAP_ALLOW
2279          ),
2280      ),
2281      'moodle/competency:userevidencemanageown' => array(
2282          'captype' => 'write',
2283          'contextlevel' => CONTEXT_USER,
2284          'archetypes' => array(
2285              'user' => CAP_ALLOW
2286          ),
2287      ),
2288      'moodle/competency:userevidenceview' => array(
2289          'captype' => 'read',
2290          'contextlevel' => CONTEXT_USER,
2291          'archetypes' => array(
2292              'manager' => CAP_ALLOW
2293          ),
2294      ),
2295  
2296  );


Generated: Thu Aug 11 10:00:09 2016 Cross-referenced by PHPXref 0.7.1