- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个表,它将我的用户 (user_levels) 链接到用户表 (user_level_id)。第 5 级是管理员。
我想限制某些操作被查看并了解我可以使用 isAuthorized 来做到这一点。我照着书做了,我很确定我做对了,但它不起作用。它允许任何已登录的用户仍然可以访问任何操作,尽管我在 isAuthorized 中拒绝了它。
这是我的代码:
App Controller:public $components = array(
'Session',
'Auth' => array(
'loginAction' => array(
'controller' => 'users',
'action' => 'login',
),
'authError' => "Your username and password is incorrect, please try again.",
'authenticate' => array(
'Form' => array(
'scope' => array('User.user_status_id' => 1)
)
),
'redirect' => array("controller" => "users", "action" => "profile"),
'loginRedirect' => array("controller" => "users", "action" => "profile")
)
);
public function isAuthorized($user = null) {
if($this->Auth->user("user_level_id") == 5) {
return true;
}
// Default deny
return false;
}
public function beforeFilter() {
$this->Auth->allow("display");
if($this->Auth->loggedIn() == true) {
$this->set("user_name",$this->Auth->user("first_name")." ".$this->Auth->user("last_name"));
$this->set("loggedIn",true);
if($this->Auth->user("user_type_id") == 5) {
$this->set("navigation","navigation_admin");
} else {
$this->set("navigation","navigation_loggedin");
}
} else {
$this->set("loggedIn",false);
$this->set("navigation","navigation_notloggedin");
}
}
}
// Users Controller:
public function beforeFilter() {
$this->Auth->allow("login");
parent::beforeFilter();
}
public function isAuthorized($user = null) {
if($this->Auth->user("user_level_id") == 5) {
return true;
}
// Default deny
return parent::isAuthorized($user);
}
最佳答案
看起来您只是缺少配置,只是告诉 AuthComponent 使用 isAuthorized()
。
'Auth' => array(
'loginAction' => array(
'controller' => 'users',
'action' => 'login',
),
'authError' => "Your username and password is incorrect, please try again.",
'authenticate' => array(
'Form' => array(
'scope' => array('User.user_status_id' => 1)
)
),
'authorize' => array('Controller'), // <- here
'redirect' => array("controller" => "users", "action" => "profile"),
'loginRedirect' => array("controller" => "users", "action" => "profile")
)
关于php - cakePHP isAuthorized 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10818792/
我正在尝试使用 isAuthorized() 方法来检查管理标志,但该函数似乎从未被调用过。即使我将函数设置为始终返回 false,它也允许任何用户。它似乎没有被调用。 我需要做的不仅仅是设置 $th
我有一个表,它将我的用户 (user_levels) 链接到用户表 (user_level_id)。第 5 级是管理员。 我想限制某些操作被查看并了解我可以使用 isAuthorized 来做到这一点
我使用用户和产品系统编写了一个简单的应用程序(Symfony 4.1.7) 用户可以编辑他的产品,但不能编辑其他用户的 我的问题,我继续编辑路线,它返回访问被拒绝,即使它是我的产品 我的产品 Cont
在 Yesod 脚手架项目中,我添加了一条新路线和一个新处理程序。 我的错误如下: 29/Mar/2017:11:25:22 +0200 [Error#yesod-core] Foundation.h
当isAuthorized = false用户被重定向到“/”有没有办法改变这一点。我想重定向到用户仪表板 (/users/dashboard),并显示一条说明“禁止访问”或类似内容的提示信息。 干杯
我正在尝试在我的一个 Controller 中测试授权,以确保只有特定类型的用户可以访问某些操作。但是 AppController 上的 isAuthorized() 方法在运行测试时永远不会被调用。
我正在尝试测试我的自定义 AuthorizeAttribute,但是不管 IsAuthenticated 是什么,基类的 IsAuthorized 方法总是返回 false。让我向您展示一些代码(为简
谁能给我逐行详细解释一下这部分吗?如何在 Eloquent ORM 中创建 isAuthorized(@param, @param) 方法? class User extends Authentica
我扩展了 AuthorizeAttribute 并根据某些条件我想向用户显示不同的消息和 httpStatusCode。我的代码是: protected override bool IsAuthori
检查这个: function beforeFilter() { $this->Auth->authorize = 'controller'; $this->Auth->allow('d
我正在为 ServiceStack 编写一个 AuthProvider 以针对我们自己的 OAuth2 服务器进行身份验证,并且在 ServiceStack 与我的提供者交互的方式上遇到了问题。 根据
我正在尝试使用 https://spring.io/guides/gs/accessing-facebook/ 访问 Facebook . 我使用“导入 Spring 入门内容”在 Spring To
我正在尝试在我的 CMS 中嵌入 Google Analytics(分析)。我想检查用户是否获得授权,如果获得授权,我将显示“退出”按钮,以便他们可以退出,然后使用其他 Google 帐户登录。 我可
我需要在授权时获取我的帖子参数的值。网络上的搜索者但没有解决方案有效。 ActionArguments 计数始终显示 0 且无法在 ActionDescriptor.GetParameters() 中
我是一名优秀的程序员,十分优秀!