/**
  * 获取所有默认角色
  *
  * @return array
  */
 public function getAllDefaultRoles()
 {
     if (null == self::$_allDefaultRoles) {
         self::$_allDefaultRoles = $this->_cache->load('acl_all_default_roles');
         if (self::$_allDefaultRoles == false) {
             $rows = $this->_db->select()->from(array('role' => 'acl_role'), array('role_name', 'mod_name'))->join('acl_module', 'acl_module.mod_name=role.mod_name', array())->where('role.is_guest=0')->where('role.is_default=1');
             $rows = $this->_db->fetchAll($rows);
             $roles = array();
             foreach ($rows as $row) {
                 $roles[$row['mod_name']] = "{$row['mod_name']}.{$row['role_name']}";
             }
             self::$_allDefaultRoles = $roles;
             $this->_cache->save($roles, 'acl_all_default_roles');
         }
     }
     return self::$_allDefaultRoles;
 }
Exemple #2
0
 /**
  * Make a query into the module table.
  * The function make the query directly for avoid caches.
  *
  * @param string $module Name of the module.
  * @param string $field  Name of the field for get.
  *
  * @return mix
  */
 private function _moduleRow($module, $field = 'id')
 {
     $select = $this->_db->select()->from('module')->where('name = ?', $module);
     $stmt = $this->_db->query($select);
     $rows = $stmt->fetchAll();
     switch ($field) {
         case 'id':
             $default = 0;
             break;
         case 'version':
         default:
             $default = null;
             break;
     }
     if (isset($rows[0])) {
         return $rows[0][$field];
     } else {
         return $default;
     }
 }