Class: Hotify::Role

Inherits:
Object
  • Object
show all
Defined in:
lib/hotify.rb

Instance Method Summary collapse

Constructor Details

#initializeRole

Returns a new instance of Role.



18
19
20
# File 'lib/hotify.rb', line 18

def initialize
  @client = Hotify::Auth.new.client
end

Instance Method Details

#add_role(user, role) ⇒ Object



63
64
65
# File 'lib/hotify.rb', line 63

def add_role(user, role)
  @client.assign_role_to_user(user.id, [role.id])
end

#dump_all_users_and_rolesObject



33
34
35
36
37
38
39
40
# File 'lib/hotify.rb', line 33

def dump_all_users_and_roles
  users = Hotify::Users.new
  all_users_and_roles = users.all_users.map do | user |
    { user: user, roles: roles_from(user: user) }
  end

  all_users_and_roles
end

#dump_roleObject



22
23
24
# File 'lib/hotify.rb', line 22

def dump_role
  @client.get_roles.to_a.each{ |role| p role }
end

#find_by(id) ⇒ Object



76
77
78
# File 'lib/hotify.rb', line 76

def find_by(id)
  @client.get_role(id)
end

#find_by_name(name) ⇒ Object



71
72
73
74
# File 'lib/hotify.rb', line 71

def find_by_name(name)
  name = "?name=#{name}"
  @client.get_role(name)
end

#leave_role(user, role) ⇒ Object



67
68
69
# File 'lib/hotify.rb', line 67

def leave_role(user, role)
  @client.remove_role_from_user(user.id, [role.id])
end

#role_in_userObject



42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/hotify.rb', line 42

def role_in_user
  all_users_and_roles = dump_all_users_and_roles
  all_roles = @client.get_roles.to_a
  role_user = Hash.new { |h,k| h[k] = [] }


  all_roles.each do | role |
    all_users_and_roles.each do | user_and_roles |
      user_and_roles[:roles].each do | role |
        role_user[role.name].push(user_and_roles[:user])
      end
    end
  end

  role_user.each do | role_name , users |
    users.uniq!
  end

  role_user
end

#roles_from(user:) ⇒ Object



26
27
28
29
30
31
# File 'lib/hotify.rb', line 26

def roles_from(user: )
  role_ids = @client.get_user_roles(user.id)
  role_ids.map do | role_id |
    @client.get_role(role_id)
  end
end