Class: Aptible::Auth::User

Inherits:
Resource
  • Object
show all
Defined in:
lib/aptible/auth/user.rb

Instance Method Summary collapse

Methods inherited from Resource

#namespace, #root_url

Instance Method Details

#add_to_role(role) ⇒ Object



79
80
81
# File 'lib/aptible/auth/user.rb', line 79

def add_to_role(role)
  role.create_membership(user: self, token: token) unless has_role? role
end

#add_to_roles(roles) ⇒ Object



75
76
77
# File 'lib/aptible/auth/user.rb', line 75

def add_to_roles(roles)
  roles.each { |role| add_to_role(role) }
end

#can_manage?(organization) ⇒ Boolean

rubocop:enable PredicateName

Returns:

  • (Boolean)


71
72
73
# File 'lib/aptible/auth/user.rb', line 71

def can_manage?(organization)
  privileged_organizations.map(&:id).include? organization.id
end

#has_role?(role) ⇒ Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/aptible/auth/user.rb', line 66

def has_role?(role)
  roles.select { |user_role| role.id == user_role.id }.count > 0
end

#is_billing_contact?(organization) ⇒ Boolean

rubocop:disable PredicateName

Returns:

  • (Boolean)


62
63
64
# File 'lib/aptible/auth/user.rb', line 62

def is_billing_contact?(organization)
  organization.billing_contact_id && organization.billing_contact_id == id
end

#operationsObject



48
49
50
51
# File 'lib/aptible/auth/user.rb', line 48

def operations
  # TODO: Implement query params for /operations
  []
end

#organization_privileged_roles(organization) ⇒ Object



42
43
44
45
46
# File 'lib/aptible/auth/user.rb', line 42

def organization_privileged_roles(organization)
  privileged_roles.select do |role|
    role.links['organization'].href == organization.href
  end
end

#organization_roles(organization) ⇒ Object



36
37
38
39
40
# File 'lib/aptible/auth/user.rb', line 36

def organization_roles(organization)
  roles.select do |role|
    role.links['organization'].href == organization.href
  end
end

#organizationsObject

rubocop:enable MethodLength



32
33
34
# File 'lib/aptible/auth/user.rb', line 32

def organizations
  roles.map(&:organization).uniq(&:id)
end

#privileged_organizationsObject



53
54
55
# File 'lib/aptible/auth/user.rb', line 53

def privileged_organizations
  privileged_roles.map(&:organization)
end

#privileged_rolesObject



57
58
59
# File 'lib/aptible/auth/user.rb', line 57

def privileged_roles
  @privileged_roles ||= roles.select(&:privileged?)
end

#set_organization_roles(organization, roles) ⇒ Object

rubocop:disable MethodLength



16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/aptible/auth/user.rb', line 16

def set_organization_roles(organization, roles)
  self.roles.each do |role|
    next unless role.organization.id == organization.id
    next if roles.map(&:id).include? role.id

    role_membership = role.memberships.find do |membership|
      membership.user.id == id
    end

    role_membership.destroy
  end

  add_to_roles(roles)
end