/** * 系统内部检测user_id是否可以请求当前资源节点 * * @param mixed $userId 用户ID * @return string */ public static function isAllowed($userId, $systemId = 0) { try { $userAssigns = UserAssignModel::getAllByUserId($userId); $roleIdsArray = array_column($userAssigns, UserAssignModel::COL_ROLE_ID); $roleAssigns = RoleAssignModel::getAllByRoleIdsArray($roleIdsArray); $permissionIdsArray = array_column($roleAssigns, RoleAssignModel::COL_PERMISSION_ID); $permissionAssigns = PermissionAssignModel::getAllByPermissionIdsArray($permissionIdsArray); $routeIdsArray = array_column($permissionAssigns, PermissionAssignModel::COL_ROUTE_ID); $rawRoutes = RouteModel::getAllByIdsArray($routeIdsArray); $routes = array_column($rawRoutes, RouteModel::COL_ROUTE); $currentRoute = self::getRequestRoute(); if (in_array($currentRoute, $routes)) { return true; } else { return false; } } catch (JdbRbacException $e) { return Utils::handlerForException($e); } }
/** * 删除一个角色 & 所有该角色的用户分配 */ public function actionDeleteOneRole() { try { $roleId = Yii::$app->request->post(RoleModel::COL_ID); RoleModel::checkId($roleId); $result = RoleAssignModel::deleteAllByRoleId($roleId); if (!$result) { } $result = RoleModel::deleteOne($roleId); return Utils::handlerForResult($result); } catch (JdbRbacException $e) { return Utils::handlerForException($e); } }
public static function deleteAllByRoleId($roleId) { return RoleAssignModel::deleteAll('role_id = :rid', [':rid' => $roleId]); }