lib/aptible/auth/role.rb in aptible-auth-0.6.0 vs lib/aptible/auth/role.rb in aptible-auth-0.7.0
- old
+ new
@@ -12,8 +12,43 @@
field :updated_at, type: Time
def users
@users ||= memberships.map(&:user).uniq
end
+
+ def set_account_permissions(account, scopes)
+ account_permissions = account_permissions(account)
+ existing_permissions = account_permissions.select do |permission|
+ permission.destroy unless scopes.include? permission.scope
+ return scopes.include? permission.scope
+ end
+
+ new_scopes = scopes - existing_permissions.map(&:scope)
+ add_account_scopes(account, new_scopes)
+ end
+
+ def account_permissions(account)
+ account.permissions.select do |permission|
+ (link = permission.links[:role]) && link.href == href
+ end
+ end
+
+ def add_account_scopes(account, scopes)
+ scopes.each { |scope| add_account_scope(account, scope) }
+ end
+
+ def add_account_scope(account, scope)
+ account.create_permission!(scope: scope, role: href)
+ end
+
+ def permissions
+ require 'aptible/api'
+
+ permissions = Aptible::Api::Permission.all(token: token,
+ headers: headers)
+ permissions.select do |permission|
+ (link = permission.links[:role]) && link.href == href
+ end
+ end
end
end
end