2016-11-27 107 views
0

我有点困惑提供授权,并在瞬间进行身份验证。多个用户认证和授权

首先我要告诉你关于我的项目。它将有两个主要型号:用户和专业人士。用户是请求服务的人。优点是提供服务的人。优点可以有非常不同的工作,因此存储在我的项目中的数据类型非常不同。 我计划有不同类型的由专业人士举行的工作有不同的型号(摄影师,婚礼策划..)。这些模型将有关系和“拥有”不同的其他模型(图片添加回形针,链接到网站...)。

我想我需要使用宝石两种身份验证以及许可(我有制定权威人士记)

现在我的问题:

  • 我会喜欢通过相同的表单让所有用户和专业人员登录。 我想这是一个非常设计的事情。虽然在阅读了一下Devise之后,似乎每个模型都有一个登录名。但这个线程提到制定“群体”
    https://gorails.com/forum/devise-with-multiple-user-models-with-single-login-form 将它肯定解决我的单一形式登录的问题?

  • 我想有各自的利弊子模型显示出其记录到任何类型的用户,甚至客人的预览。但是,当专业版登录后,他们可以访问扩展配置文件视图,其中包含更多信息(可以更改的所有人员数据,来自用户的价格请求等)。你能证实这是在这里的权威工作吗?

回答

1

评论家是实现你的第二点的最佳选择。您可以限制某些操作(如编辑/更新)只能由拥有该帐户的专业人员实现。在ProPolicy这些行动的代码看起来是这样的:

def edit? 
    update? 
end 

def update? 
    record.pro == user 
end 

在使用设计的有关多用户模型验证问题而言,你能解释一下为什么你在具有两个用户只需一个登录表单设置?您可以在登录按钮上有一个下拉列表,用户可以选择他是普通用户还是专业用户。或者你甚至可以在表单上选择他们想要使用的登录类型。

如果不是这样,那么您将不知何故必须检查您的数据库,以查看Pro或用户表中是否存在登录名。但是,我想这意味着您不能同时使用同一封电子邮件的专业版和用户帐户。

+0

你是正确的我甚至没有想到的事实Pro还可以是用户。我认为将两者分开并为专业人士制作一个特殊的欢迎页面会更好。现在我已经安装并了解了Devise,我可以深入专家! TKS – Maxence