试图找出将用户组织到组织中的最佳方法,以便每个组织的成员仅看到他们自己和组织中其他人添加的项目。所有用户都需要使用共享登录名。
我以前在Devise上有过一些经验,因此希望尽可能使用它。
解决此问题的最佳方法是什么?
任何解释这些的教程链接都很好。
谢谢
答案 0 :(得分:0)
假设您的用户模型属于某个公司:
void main() => runApp(_widgetForRoute(window.defaultRouteName));
Widget _widgetForRoute(String route) {
return MediaQuery(
data: MediaQueryData.fromWindow(window),
child: Directionality(
textDirection: TextDirection.ltr,
child: Material(
child: ListView.builder(
itemBuilder: (context, index) => Text("index $index"),
itemCount: 100,
),
),
),
);
}
公司模型拥有许多用户并拥有许多产品(项目):
class User < ActiveRecord
belongs_to :company
....
end
属于公司的产品型号:
class Company < ActiveRecord
has_many :users
has_many :products
end
对于您来说,您要实现的目标是用户只能查看/编辑其公司的产品。在控制器中使用before_action,您可以定义用户可以/不能执行的操作。这是基本示例:
class Product < ActiveRecord
belongs_to :company
....
end
这样,每当用户尝试访问不属于其公司的产品时,您都会引发错误。
当然,这只是一个基本示例,您应该看一下功能非常强大的Pundit gem,但您应该明白这一点:)
让我知道我是否错过了什么。
欢呼