CakePHP 多用户 Roles/PRO 成员角色
CakePHP Multiple User Roles/PRO Membership Role
我有一个 CakePHP 应用程序,目前有 2 user_type(s)。
- admin(管理员)
- 账户(普通用户)
我正在做一些让用户可以支付额外费用的东西,这样他们就可以访问更多的内容和页面。我打算创建一个名为 PRO 的新 user_type 并使用它,但 PRO 成员仍然需要访问拥有帐户 user_type 的人可以访问的所有内容。
基本上,最简单的设置方法是什么,我可以使用与我当前正在使用的代码类似的代码向用户授予查看某些内容和页面的权限:
<?php if( $currentUser['user_type'] == 'account' ) { ?>
和 <?php } ?>
用于限制内容
if( $this->User['user_type'] == 'account')) {
switch ($this->request->getParam('action')) {
case 'PAGE':
return true;
default:
return false;
break;
}
}
用于控制页面访问
另外,我需要一种简单的方法来让用户通过前端管理面板进行访问。我目前使用下面的代码,我需要一种方法来调整它以适应这个新的 "PRO" 选项。
if( $user->user_type != 'admin' && $currentUser['id'] = 1 )
echo $this->Form->postLink(__('Make Admin'), ['action' => 'make_admin', $user->id], ['confirm' => __('Are you sure you want to make admin?', $user->name), 'class'=>'btn btn-danger btn-md']);
else
echo $this->Form->postLink(__('Revoke Admin'), ['action' => 'revoke_admin', $user->id], ['confirm' => __('Are you sure you want to remove admin rights?', $user->name), 'class'=>'btn btn-danger btn-md']);
我对 cakephp 非常陌生,所以非常感谢任何帮助。我没有制作基本应用程序,我聘请了一名开发人员来做,所以我正在学习 cakephp,以便我可以努力调整应用程序以更好地满足我的需求。到目前为止,这个社区非常有帮助,我希望我能继续让一切正常工作!
我的观点是,我将在 AppController 中进行所有更改,并从那里获得许可。然后,我可以毫不费力地处理其余的情况。
例如在 AppController 中的 beforeFilter()
$this->authenticatedUser = AuthComponent::user();
//$this->authenticatedUser['superadmin'] = false; //if you set true, this will be your root user
并在此处设置您的新角色
$this->authenticatedUser['role'] = 'PRO' //or your `account` with your condition
如果您将角色 account
更改为 PRO
角色,您可以设置 $this->authenticatedUser['role']
来设置您的新角色。
if(in_array($this->authenticatedUser['role'],['account','PRO'])) {
switch ($this->request->getParam('action')) {
case 'PAGE':
return true;
default:
return false;
break;
}
}
或者您可以更改
if(!$this->authenticatedUser['superadmin'])
或if($this->authenticatedUser['superadmin'])
如果我能看到更多你的AppController(BaseController),我可以帮助你更多。现在,有很多未知数,做出了很多假设来求助。无论如何,我的方法可能会很容易地帮助您添加新角色。
我有一个 CakePHP 应用程序,目前有 2 user_type(s)。
- admin(管理员)
- 账户(普通用户)
我正在做一些让用户可以支付额外费用的东西,这样他们就可以访问更多的内容和页面。我打算创建一个名为 PRO 的新 user_type 并使用它,但 PRO 成员仍然需要访问拥有帐户 user_type 的人可以访问的所有内容。
基本上,最简单的设置方法是什么,我可以使用与我当前正在使用的代码类似的代码向用户授予查看某些内容和页面的权限:
<?php if( $currentUser['user_type'] == 'account' ) { ?>
和 <?php } ?>
用于限制内容
if( $this->User['user_type'] == 'account')) {
switch ($this->request->getParam('action')) {
case 'PAGE':
return true;
default:
return false;
break;
}
}
用于控制页面访问
另外,我需要一种简单的方法来让用户通过前端管理面板进行访问。我目前使用下面的代码,我需要一种方法来调整它以适应这个新的 "PRO" 选项。
if( $user->user_type != 'admin' && $currentUser['id'] = 1 )
echo $this->Form->postLink(__('Make Admin'), ['action' => 'make_admin', $user->id], ['confirm' => __('Are you sure you want to make admin?', $user->name), 'class'=>'btn btn-danger btn-md']);
else
echo $this->Form->postLink(__('Revoke Admin'), ['action' => 'revoke_admin', $user->id], ['confirm' => __('Are you sure you want to remove admin rights?', $user->name), 'class'=>'btn btn-danger btn-md']);
我对 cakephp 非常陌生,所以非常感谢任何帮助。我没有制作基本应用程序,我聘请了一名开发人员来做,所以我正在学习 cakephp,以便我可以努力调整应用程序以更好地满足我的需求。到目前为止,这个社区非常有帮助,我希望我能继续让一切正常工作!
我的观点是,我将在 AppController 中进行所有更改,并从那里获得许可。然后,我可以毫不费力地处理其余的情况。
例如在 AppController 中的 beforeFilter()
$this->authenticatedUser = AuthComponent::user();
//$this->authenticatedUser['superadmin'] = false; //if you set true, this will be your root user
并在此处设置您的新角色
$this->authenticatedUser['role'] = 'PRO' //or your `account` with your condition
如果您将角色 account
更改为 PRO
角色,您可以设置 $this->authenticatedUser['role']
来设置您的新角色。
if(in_array($this->authenticatedUser['role'],['account','PRO'])) {
switch ($this->request->getParam('action')) {
case 'PAGE':
return true;
default:
return false;
break;
}
}
或者您可以更改
if(!$this->authenticatedUser['superadmin'])
或if($this->authenticatedUser['superadmin'])
如果我能看到更多你的AppController(BaseController),我可以帮助你更多。现在,有很多未知数,做出了很多假设来求助。无论如何,我的方法可能会很容易地帮助您添加新角色。