Home  >  Article  >  Backend Development  >  Laravel 5.2:角色管理的时候怎么改变用户的角色呢?

Laravel 5.2:角色管理的时候怎么改变用户的角色呢?

WBOY
WBOYOriginal
2016-06-06 20:11:391116browse

使用 Laravel 5.2 和 Zizaco/entrust 5.2这个包的时候, 怎么改变用户的角色呢?

比如:有一个用户Jim,他现在的角色是vip,30天后到期,到期后自动变为普通用户,怎么做呢?

3张表如下:
users

id      name         email                   password
1       Jim          Jim@example.com         ****** 

roles

id       name      
1        vip     
2        ordinary 

role_user

user_id      role_id     
1                1 

回复内容:

使用 Laravel 5.2 和 Zizaco/entrust 5.2这个包的时候, 怎么改变用户的角色呢?

比如:有一个用户Jim,他现在的角色是vip,30天后到期,到期后自动变为普通用户,怎么做呢?

3张表如下:
users

id      name         email                   password
1       Jim          Jim@example.com         ****** 

roles

id       name      
1        vip     
2        ordinary 

role_user

user_id      role_id     
1                1 

你可能思路错了,一个可能的方案如下:

  1. 所有用户都拥有ordinary角色

  2. vip用户同时拥有ordinary和vip角色

  3. 在验证vip用户权限的时候,先验证是否是vip用户,如果是,再验证账户是否到期(可以通过在roles表中设置一个expire字段,存储到期日期,如果是ordinary则默认为null,如果是vip,则设置相应的日期)

  4. 所以,不存在自动改变用户角色的问题,也就是说,vip用户在到期后,还是vip用户,只不过vip“身份”到期了,需要vip权限的资源也就不可用(通过验证expire字段)

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn