public function __construct(DataRow $row)
 {
     if ($row->getTable()->getTableName() !== DB::getRoleTableName()) {
         throw new SystemException('Wrong Role Table');
     }
     $this->_data = $row->getAllData();
     //load permission
     $this->loadPermission();
 }
 /**
  * @return \ORC\App\User\Roles
  */
 public static function getAllRoles()
 {
     static $roles;
     if (!isset($roles)) {
         $roles = new self();
         $dbal = DBAL::select(DB::getRoleTableName());
         $result = $dbal->execute();
         foreach ($result as $row) {
             $role = new Role($row);
             //$this->_roles[$role->getId()] = $role;
             $roles[$role->getId()] = $role;
         }
     }
     return $roles;
 }