【发布时间】:2015-04-30 04:14:58
【问题描述】:
我正在为我的项目使用 Yii 1.13 框架,我需要“gii”代码生成器,但我想将它限制为仅限管理员用户,我该如何实现?
【问题讨论】:
-
gii 是一种开发工具,通常不应提供给经过身份验证的用户。查看实施 .htaccess 以限制对生产服务器的所有访问,或从实时部署中删除功能。
标签: php yii yii-components
我正在为我的项目使用 Yii 1.13 框架,我需要“gii”代码生成器,但我想将它限制为仅限管理员用户,我该如何实现?
【问题讨论】:
标签: php yii yii-components
按照以下步骤操作:-
改变这个
public function beforeControllerAction($controller, $action)
{
if(parent::beforeControllerAction($controller, $action))
{
$route=$controller->id.'/'.$action->id;
if(!$this->allowIp(Yii::app()->request->userHostAddress) && $route!=='default/error')
throw new CHttpException(403,"You are not allowed to access this page.");
$publicPages=array(
'default/login',
'default/error',
);
if(Yii::app()->user->isGuest && !in_array($route,$publicPages))
Yii::app()->user->loginRequired();
// check your admin conditions here
elseif(!isset(Yii::app()->user->isAdmin) || !Yii::app()->user->isAdmin)
throw new CHttpException(403,"You are not allowed to access this page.");
else
return true;
}
return false;
}
在你的 config/main.php
'modules' =>
array(
'gii'=>array(
'class'=>'application.modules.gii.GiiModule',
'password'=> Your password,
'ipFilters'=>array('127.0.0.1','::1'),
),
),
注意:-我没有测试过。但它可能会让您知道如何进行。
【讨论】:
您可以通过IP限制用户或根据Gii工具的documentation选择密码
return array(
......
'modules'=>array(
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'pick up a password here',
// 'ipFilters'=>array(...a list of IPs...),
),
),
);
【讨论】: