Server : Apache System : Linux indy02.toastserver.com 3.10.0-962.3.2.lve1.5.85.el7.x86_64 #1 SMP Thu Apr 18 15:18:36 UTC 2024 x86_64 User : palandch ( 1163) PHP Version : 7.1.33 Disable Function : NONE Directory : /home/palandch/www/core/model/modx/ |
<?php /** * @package modx */ /** * Represents a person or system that will access modX. * * {@internal Implement a derivative to define the behavior and attributes of * an actual user or system that is intended to access modX or a modX service.} * * @abstract * @package modx */ class modPrincipal extends xPDOSimpleObject { /** * Stores a collection of key-value pairs identifying policy authority. * @var array * @access protected */ protected $_attributes = null; /** * Load attributes of the principal that define access to secured objects. * * {@internal Implement this function in derivatives to control how your * user class uses the MODX ABAC (Attribute-Based Access Control) security * model} * * @abstract * @access protected * @param string $target The target modAccess classes to load attributes from. * @param string $context Context to check within, defaults to current context. * @param boolean $reload If true, the attributes will be reloaded and the session updated. */ public function loadAttributes($target, $context = '', $reload = false) { $this->_attributes = array(); } /** * Get the attributes for this principal. * * @param array $targets An array of target modAccess classes to load. * @param string $context The context to check within. Defaults to active context. * @param boolean $reload If true, the attributes will be reloaded and the session updated. * @return array An array of attributes on the principal */ public function getAttributes($targets = array(), $context = '', $reload = false) { $context = !empty($context) ? $context : $this->xpdo->context->get('key'); if (!is_array($targets) || empty($targets)) { $targets = explode(',', $this->xpdo->getOption('principal_targets', null, 'modAccessContext,modAccessResourceGroup,modAccessCategory,sources.modAccessMediaSource')); array_walk($targets, 'trim'); } $this->loadAttributes($targets, $context, $reload); return $this->_attributes[$context]; } }