RoleModel::roles PHP Method

roles() public static method

public static roles ( null $RoleID = null, boolean $Force = false ) : array | mixed | null | type
$RoleID null
$Force boolean
return array | mixed | null | type
    public static function roles($RoleID = null, $Force = false)
    {
        if (self::$Roles == null) {
            $Key = 'Roles';
            $Roles = Gdn::cache()->get($Key);
            if ($Roles === Gdn_Cache::CACHEOP_FAILURE) {
                $Roles = Gdn::sql()->get('Role', 'Sort')->resultArray();
                $Roles = Gdn_DataSet::Index($Roles, array('RoleID'));
                Gdn::cache()->store($Key, $Roles, array(Gdn_Cache::FEATURE_EXPIRY => 24 * 3600));
            }
        } else {
            $Roles = self::$Roles;
        }
        if ($RoleID === null) {
            return $Roles;
        } elseif (array_key_exists($RoleID, $Roles)) {
            return $Roles[$RoleID];
        } elseif ($Force) {
            return array('RoleID' => $RoleID, 'Name' => '');
        } else {
            return null;
        }
    }

Usage Example

コード例 #1
0
ファイル: class.usermodel.php プロジェクト: vanilla/vanilla
 /**
  *
  *
  * @param array $Roles
  * @return array
  */
 protected function lookupRoleIDs($Roles)
 {
     if (is_string($Roles)) {
         $Roles = explode(',', $Roles);
     } elseif (!is_array($Roles)) {
         $Roles = [];
     }
     $Roles = array_map('trim', $Roles);
     $Roles = array_map('strtolower', $Roles);
     $AllRoles = RoleModel::roles();
     $RoleIDs = [];
     foreach ($AllRoles as $RoleID => $Role) {
         $Name = strtolower($Role['Name']);
         if (in_array($Name, $Roles) || in_array($RoleID, $Roles)) {
             $RoleIDs[] = $RoleID;
         }
     }
     return $RoleIDs;
 }
All Usage Examples Of RoleModel::roles