我正在构建一个只能通过JSON API(Rails 4.0,PostgreSQL)工作的项目.这是一个基于数据库的权限的大应用程序.我有AngularJS应用程序,可以使用这个REST API.
简化结构:
employees >--- position ---< permission
Run Code Online (Sandbox Code Playgroud)
Employee.rb
belongs_to :position
Run Code Online (Sandbox Code Playgroud)
Position.rb
has_many :employees
has_many :permissions, dependent: :destroy
Run Code Online (Sandbox Code Playgroud)
Permission.rb
belongs_to :position
## Columns
# action (:manage, :read, :update, :create, etc...)
# subject_class
# subject
Run Code Online (Sandbox Code Playgroud)
我对AngularJS客户端的操作按钮/链接有问题.
例如,我不想在Angular应用程序中的某处显示链接"Add Order",因为Employee的位置权限只允许读取资源而不是修改它:
id action subject_class subject
1 :read Order
Run Code Online (Sandbox Code Playgroud)
我是怎么试图解决这个问题的
我创建了一个资源GET api/v1/employees/me,它返回current_employee及其所有权限:
"employee": {
...
:position": {
...
"permissions": {
{"id": 1, "action": "read", "subject_class": "Order", "subject": ""},
{"id": 6, "action": "manage", "subject_class": "Waybill", "subject": ""}
}
}
}
Run Code Online (Sandbox Code Playgroud)
所以我在客户端拥有所有权限,但是使用AngularJS应用程序UI获得权限的最佳方式是什么?