UserModel::compilePermissions PHP Method

compilePermissions() public static method

Take raw permission definitions and create.
public static compilePermissions ( array $rawPermissions ) : array
$rawPermissions array Database rows from the permissions table.
return array Compiled permissions
    public static function compilePermissions($rawPermissions)
    {
        $permissions = new Vanilla\Permissions();
        $permissions->compileAndLoad($rawPermissions);
        return $permissions->getPermissions();
    }

Usage Example

Ejemplo n.º 1
0
 /**
  *
  *
  * @param $UserID
  * @param bool $Refresh
  * @return array|bool|null|object|type
  */
 public function getSession($UserID, $Refresh = false)
 {
     // Ask for the user. This will check cache first.
     $User = $this->getID($UserID, DATASET_TYPE_OBJECT);
     if (!$User) {
         return false;
     }
     // If we require confirmation and user is not confirmed
     $ConfirmEmail = self::requireConfirmEmail();
     $Confirmed = val('Confirmed', $User);
     if ($ConfirmEmail && !$Confirmed) {
         // Replace permissions with those of the ConfirmEmailRole
         $ConfirmEmailRoleID = RoleModel::getDefaultRoles(RoleModel::TYPE_UNCONFIRMED);
         $RoleModel = new RoleModel();
         $RolePermissions = $RoleModel->getPermissions($ConfirmEmailRoleID);
         $Permissions = UserModel::compilePermissions($RolePermissions);
         // Ensure Confirm Email role can always sign in
         if (!in_array('Garden.SignIn.Allow', $Permissions)) {
             $Permissions[] = 'Garden.SignIn.Allow';
         }
         $User->Permissions = $Permissions;
         // Otherwise normal loadings!
     } else {
         if ($User && ($User->Permissions == '' || Gdn::cache()->activeEnabled())) {
             $User->Permissions = $this->definePermissions($UserID);
         }
     }
     // Remove secret info from session
     unset($User->Password, $User->HashMethod);
     return $User;
 }
All Usage Examples Of UserModel::compilePermissions
UserModel