Drupal 7 开发内部培训资料, 分头诗人

可以让1个用户拥有两个roles并在登录时自行选择吗?

赞成!
0
否决!

希望只用一个账号,在登录时可以选择不同role以对应不同权限能做的事。(而不是像auto assign role那样在注册时选定role以后就不能切换了)

例:有两份问卷,给一组人一个账号(以便于管理),当A登录时选择roleA,只有权限填写问卷A;换人后同理。

3 个回答

赞成!
0
否决!

这个从逻辑去想,就知道可行性不高,因为系统不会知道当前坐在电脑面前的人是Role A 还是Role B,举例,我跟你通用 一个账号(用户名:猪跑啦;密码:drupalla.com),都在同一个公司做笔试,笔试的电脑也只有一台。

由于我们面试的职位不同,所以两份不同问卷,我是A卷,你是B卷

 

好了,现在假使你先做题,你在电脑面前输入 用户名:猪跑啦;密码:drupalla.com,理论上,电脑是要做到能识别你是要A卷的,但想想。。系统如何知道是你坐在电脑面前?而不是我?

同样道理,我坐在电脑面前,电脑也得知道是调用B卷,而不是A卷。电脑是无法判断的。。

 

总结是:电脑无法判断当前使用者究竟是想用Role A 登陆还是Role B登陆,因为使用者没有明确的指示。

 

如果你要做这样的功能是比较难的,但如果可以让步,就是有几种不太完美的解决方法参考:

方法1,给面试人使用的账号,只有一个,就是用户名:猪跑啦;密码:drupalla.com,但每次给账号给面试人之前,要先了解面试人是要做A卷还是B卷,如果是A卷的面试者,后台设置猪跑啦这个用户为Role A,同理,如果是B卷的面试者,后台设置猪跑啦这个用户为Role B。

 

方法2,用switch user快速切换用户 功能(模块Masquerade),就是登陆一个有跳转到其他用户的功能的账号,假使这个账号叫猪跑啦;密码:drupalla.com,然后还得有两个账号就是UserA,UserB,这两个账号不需要给他们密码,只需要给猪跑啦这个账号密码给他们,然后通过跳转功能:我是一个A面试者 , 我是一个B面试者, 这样,当点击A,就会自动用UserA登陆了,同理,当点击B,自动用UserB登陆。

 

方法3,只有一个账号就是用户名:猪跑啦;密码:drupalla.com,当登陆后,第一个界面是两条连接:我是一个A面试者我是一个B面试者,然后点击进去后,用一个页面做身份判断,如A面试者需要输入key:123456,而B面试者需要输入key:abcdef。。。

 

赞成!
0
否决!

呃不好意思可能我的问题没有表达清楚,我说的“自行选择”不是由机器端而是用户自选,也就是说电脑不需要判断使用者想用哪个role,而是在使用者登录时告诉电脑(通过登录附加选项之类)。大概就是您给的方法2或3那个思路。中转页面是个不错的选择~但是如果有能够像auto assign role那样把用户选择role集成到log in对话框中就更好了。谢谢!

赞成!
0
否决!

Role Field -- 角色选择字段,与rules结合有想象空间