您的位置:首页 > 其它

如何给一个注册用户添加一个权限或角色

2015-06-09 11:16 477 查看
在gii中生成model文件AuthItem.php和AuthAssignment.php

修改SignupForm文件

[align=left]class SignupForm extends Model{[/align]

[align=left]# code...[/align]

[align=left]public $permissions ;[/align]

[align=left] # code...[/align]
[align=left]}[/align]

2.修改SiteController文件

[align=left]use backend \models\ AuthItem;[/align]
public function actionSignup()
{

$model = new SignupForm();

$authItems =AuthItem:: find()-> all();

if ($model-> load(Yii ::$app-> request->post ()))
{

if ($user = $model->signup ())
{

if (Yii:: $app->getUser ()->login ($user))
{

return $this ->goHome();

}

}

}

return $this->render ('signup',
[

'model' => $model,

'authItems' =>$authItems

]);

}
[align=left] 3.修改signup.php文件[/align]

[align=left]# code...[/align]

[align=left]use[/align]

yii\helpers \ArrayHelper;
[align=left]# code...[/align]

[align=left]<?php[/align]

[align=left]$authItems[/align]

=ArrayHelper ::map( $authItems,'name' ,'name');

[align=left]?>[/align]

[align=left] <?=[/align]

$form->field ($model, 'permissions')-> checkboxList($authItems ); ?>

[align=left]# code...[/align]

[align=left]4.修改SignupForm文件[/align]

/**

* Signs user up.

*

* @return User|null
the saved model or null if saving fails

*/

public function signup()

{

if ($this-> validate())
{

$user = new User();

$user ->username = $this->username ;

$user ->email = $this->email ;

$user ->setPassword( $this->password );

$user ->generateAuthKey();

$user ->save();

$permissionList =$_POST[ 'SignupForm']['permissions' ];

// lets add the permissions

foreach( $permissionList as $value ){

$newPermissions =new AuthAssignment ();

$newPermissions ->user_id= $user->id ;

$newPermissions ->item_name= $value;

$newPermissions ->save();

}

return $user ;

}

return null ;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: