PermissionModel::addPermissions PHP Method

addPermissions() public static method

Add the permissions from one permission array to another.
public static addPermissions ( array $perms1, array $perms2 ) : array
$perms1 array The permissions to be added to.
$perms2 array The permissions to add.
return array Returns an array with all of the permissions in both permissions arrays.
    public static function addPermissions($perms1, $perms2)
    {
        // Union the global permissions.
        $result = array_unique(array_merge(array_filter($perms1, 'is_string'), array_filter($perms2, 'is_string')));
        // Union the junction permissions.
        $junctions1 = array_filter($perms1, 'is_array');
        $junctions2 = array_filter($perms2, 'is_array');
        foreach ($junctions2 as $key => $ids) {
            if (empty($junctions1[$key])) {
                $junctions1[$key] = $ids;
            } else {
                $junctions1[$key] = array_unique(array_merge($junctions1[$key], $ids));
            }
        }
        $result = array_merge($result, $junctions1);
        return $result;
    }

Usage Example

Exemplo n.º 1
0
 /**
  * Add the permissions from a permissions array to this session's permissions.
  *
  * @param array $perms The permissions to add.
  */
 public function addPermissions($perms)
 {
     $this->_Permissions = PermissionModel::addPermissions($this->_Permissions, $perms);
 }