我正在使用Catalyst与Catalyst::Plugin::Authentication
和 Catalyst::Plugin::Authorization::Roles
我想知道是否有更好的 方法来添加属性到我没有看到的模型。从模型进行Catalyst调用?
每个用户都被允许访问一个或多个公司,但始终有一个主要(当前)公司是 。允许的列表是 存储在数据库中,并且数据库访问主要通过DBIC
。
我的第一个倾向是说,它是具有当前 公司的用户,从而把它作为用户模型的一部分:给用户 包“sub company { … }
”获取/设置用户当前的公司。数据库检查相当简单;只需使用“$self->search_related
”(由用户模型继承的DBIC 方法)。
我在跑的问题是:
- 目前公司需要请求之间持续存在,但我宁愿不 其存储到数据库(它应该只坚持了这个 会话)。自然的地方是会话...
- 有一个角色,类似于Unix的
root
,它允许你扮演 任何公司,忽略数据库中的列表。检查这个角色 可以通过数据库完成,但在应用程序的其他地方使用$c->assert_user_role
和朋友。
我听说尽最大努力保持模型独立于催化剂,因为 可能。有一个模型操纵 $c->session
似乎也很奇怪。
当然,我可以移动这些检查控制器,并有 模型接受任何控制器发送,但是这违反干 很严重,只是乞求一个安全问题,如果我忘记 一个支票某处。
有什么建议吗?或者我只是耸耸肩,继续在模型中做?
谢谢,并为标题道歉,我不能拿出一个好。
@Brad Gilbert:感谢链接。 – derobert
我总是这样做,当我遇到可以使用它们的帖子时。 –