/** * Returns HTML risk icons. * * @return string */ protected function get_role_risks_info() { global $OUTPUT; if (empty($this->roleid)) { return ''; } $risks = array(); $allrisks = get_all_risks(); foreach ($this->capabilities as $capability) { $perm = $this->permissions[$capability->name]; if ($perm != CAP_ALLOW) { continue; } foreach ($allrisks as $type => $risk) { if ($risk & (int) $capability->riskbitmask) { $risks[$type] = $risk; } } } $risksurl = new moodle_url(get_docs_url(s(get_string('risks', 'core_role')))); foreach ($risks as $type => $risk) { $pixicon = new pix_icon('/i/' . str_replace('risk', 'risk_', $type), get_string($type . 'short', 'admin')); $risks[$type] = $OUTPUT->action_icon($risksurl, $pixicon, new popup_action('click', $risksurl)); } return implode(' ', $risks); }
public function __construct($context, $id, $roleid) { parent::__construct($context, $id); $this->allrisks = get_all_risks(); $this->risksurl = get_docs_url(s(get_string('risks', 'core_role'))); $this->allpermissions = array(CAP_INHERIT => 'inherit', CAP_ALLOW => 'allow', CAP_PREVENT => 'prevent', CAP_PROHIBIT => 'prohibit'); $this->strperms = array(); foreach ($this->allpermissions as $permname) { $this->strperms[$permname] = get_string($permname, 'core_role'); } $this->roleid = $roleid; $this->load_current_permissions(); // Fill in any blank permissions with an explicit CAP_INHERIT, and init a locked field. foreach ($this->capabilities as $capid => $cap) { if (!isset($this->permissions[$cap->name])) { $this->permissions[$cap->name] = CAP_INHERIT; } $this->capabilities[$capid]->locked = false; } }
protected function get_risks($capability) { global $OUTPUT; $allrisks = get_all_risks(); $risksurl = new moodle_url(get_docs_url(s(get_string('risks', 'core_role')))); $return = ''; foreach ($allrisks as $type => $risk) { if ($risk & (int) $capability->riskbitmask) { if (!isset($this->icons[$type])) { $pixicon = new pix_icon('/i/' . str_replace('risk', 'risk_', $type), get_string($type . 'short', 'admin')); $this->icons[$type] = $OUTPUT->action_icon($risksurl, $pixicon, new popup_action('click', $risksurl)); } $return .= $this->icons[$type]; } } return $return; }
/** * Render all the risk icons for a capability. * @param stdClass $capability the information about a capability. * @return string the HTML to output. */ protected function risk_icons($capability) { $icons = array(); foreach (get_all_risks() as $riskname => $risk) { if ($risk & (int) $capability->riskbitmask) { $icons[] = $this->risk_icon($riskname); } } return implode(' ', $icons); }