PermissionModel::addDefault PHP Method

addDefault() public method

Add an entry into the list of default permissions.
public addDefault ( string $Type, array $Permissions, null | string $Junction = null, null | integer $JunctionId = null )
$Type string Type of role the permissions should be added for.
$Permissions array The list of permissions to include.
$Junction null | string Type of junction to base the permission on.
$JunctionId null | integer Identifier for the specific junction record to base the permission on.
    public function addDefault($Type, $Permissions, $Junction = null, $JunctionId = null)
    {
        if (!array_key_exists($Type, $this->DefaultPermissions)) {
            $this->DefaultPermissions[$Type] = array('global' => array());
        }
        if ($Junction && $JunctionId) {
            $JunctionKey = "{$Junction}:{$JunctionId}";
            if (!array_key_exists($JunctionKey, $this->DefaultPermissions[$Type])) {
                $this->DefaultPermissions[$Type][$JunctionKey] = array();
            }
            $Defaults =& $this->DefaultPermissions[$Type][$JunctionKey];
        } else {
            $Defaults =& $this->DefaultPermissions[$Type]['global'];
        }
        $Defaults = array_merge($Defaults, $Permissions);
    }

Usage Example

Exemplo n.º 1
0
 /**
  * Provide default permissions for roles, based on the value in their Type column.
  *
  * @param PermissionModel $Sender Instance of permission model that fired the event
  */
 public function permissionModel_defaultPermissions_handler($Sender)
 {
     $Sender->addDefault(RoleModel::TYPE_MEMBER, array('Conversations.Conversations.Add' => 1));
     $Sender->addDefault(RoleModel::TYPE_MODERATOR, array('Conversations.Conversations.Add' => 1));
     $Sender->addDefault(RoleModel::TYPE_ADMINISTRATOR, array('Conversations.Conversations.Add' => 1));
 }
All Usage Examples Of PermissionModel::addDefault