小编Pav*_*nko的帖子

使用Angular JS客户端的Rails REST API权限(CanCan).如何根据权限呈现UI?

我正在构建一个只能通过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获得权限的最佳方式是什么?

javascript ruby rest ruby-on-rails angularjs

10
推荐指数
1
解决办法
2531
查看次数

标签 统计

angularjs ×1

javascript ×1

rest ×1

ruby ×1

ruby-on-rails ×1