public function getActiveMenuIds() { if ($this->_active_menu_ids === null) { $user = Yii::$app->user->identity; $user_id = $user['id']; $roles = AdminUserRole::find()->asArray()->where(['user_id' => $user_id])->all(); $role_ids = []; if (!empty($roles)) { foreach ($roles as $one) { $role_ids[] = $one['role_id']; } } //var_dump($user);exit; $menu_ids = []; if (!empty($role_ids)) { $AdminRoleMenus = AdminRoleMenu::find()->asArray()->select(['menu_id'])->where(['in', 'role_id', $role_ids])->all(); if (!empty($AdminRoleMenus)) { foreach ($AdminRoleMenus as $menu) { $menu_ids[] = $menu['menu_id']; } } } $menu_ids = array_unique($menu_ids); $this->_active_menu_ids = $menu_ids; } return $this->_active_menu_ids; }
public static function ifCurrentUserIsSpecificRole($role_name) { if (!$role_name) { return false; } $user = Yii::$app->user->identity; $user_id = $user['id']; $roles = AdminUserRole::find()->asArray()->where(['user_id' => $user_id])->all(); $role_ids = []; if (!empty($roles)) { foreach ($roles as $role) { $role_ids[] = $role['role_id']; } } $user_role_names = []; $user_roles = AdminRole::find()->asArray()->where(['in', 'role_id', $role_ids])->all(); if (!empty($user_roles)) { foreach ($user_roles as $one) { $user_role_names[] = $one['role_name']; } } if (in_array($role_name, $user_role_names)) { return true; } return false; }
public function getCurrentRoleKeys() { $identity = Yii::$app->user->identity; $user_id = $identity->id; $roles = AdminUserRole::find()->asArray()->where(['user_id' => $user_id])->all(); $AdminRole = new AdminRole(); # 缓存读取role key if (!CCache::get(CCache::ALL_ROLE_KEY_CACHE_HANDLE)) { if (!CCache::set(CCache::ALL_ROLE_KEY_CACHE_HANDLE, $AdminRole->getAllRoleMenuRoleKey())) { throw new InvalidValueException('save role key to cache error,check your cache if it can write!'); } } $roleKeys = CCache::get(CCache::ALL_ROLE_KEY_CACHE_HANDLE); //var_dump($roleKeys);exit; //$role_ids = []; $menu_roles = []; if (!empty($roles)) { foreach ($roles as $role) { $role_id = $role['role_id']; $menu_role = isset($roleKeys[$role_id]) ? $roleKeys[$role_id] : []; $menu_roles = array_merge($menu_roles, $menu_role); } } return $menu_roles; }
public function getUserRoleIds() { $user = $this->_one; $user_id = $user['id']; $roles = AdminUserRole::find()->asArray()->where(['user_id' => $user_id])->all(); $role_ids = []; if (!empty($roles)) { foreach ($roles as $r) { $role_ids[] = $r['role_id']; } } return $role_ids; }