Class: Kaname::Adapter::ReadAndWrite
- Inherits:
-
ReadOnly
- Object
- ReadOnly
- Kaname::Adapter::ReadAndWrite
show all
- Defined in:
- lib/kaname/adapter/read_and_write.rb
Instance Method Summary
collapse
Methods inherited from ReadOnly
#find_user, #initialize, #list_role_assignments, #list_roles, #list_tenants, #list_users, #users_hash
Instance Method Details
#change_user_role(tenant_name, user_hash, before_role_name, after_role_name) ⇒ Object
46
47
48
49
|
# File 'lib/kaname/adapter/read_and_write.rb', line 46
def change_user_role(tenant_name, user_hash, before_role_name, after_role_name)
delete_user_role(tenant_name, user_hash, before_role_name)
create_user_role(tenant_name, user_hash, after_role_name)
end
|
#create_user(name, email) ⇒ Object
7
8
9
10
11
12
13
|
# File 'lib/kaname/adapter/read_and_write.rb', line 7
def create_user(name, email)
password = Kaname::Generator.password
puts "#{name},#{password}"
user = Yao::User.create(name: name, email: email, password: password)
{"id" => user.id, "name" => user.name}
end
|
#create_user_role(tenant_name, user_hash, role_name) ⇒ Object
15
16
17
|
# File 'lib/kaname/adapter/read_and_write.rb', line 15
def create_user_role(tenant_name, user_hash, role_name)
Yao::Role.grant(role_name, to: user_hash["name"], on: tenant_name)
end
|
#delete_user(name) ⇒ Object
38
39
40
|
# File 'lib/kaname/adapter/read_and_write.rb', line 38
def delete_user(name)
Yao::User.destroy find_user(name)["id"]
end
|
#delete_user_role(tenant_name, user_hash, role_name) ⇒ Object
42
43
44
|
# File 'lib/kaname/adapter/read_and_write.rb', line 42
def delete_user_role(tenant_name, user_hash, role_name)
Yao::Role.revoke(role_name, from: user_hash["name"], on: tenant_name)
end
|
#update_user_password(old_password, new_password) ⇒ Object
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/kaname/adapter/read_and_write.rb', line 19
def update_user_password(old_password, new_password)
if old_password && new_password
me = Yao::User.get_by_name(Kaname::Config.username)
client= Yao.default_client.pool['identity']
params = JSON.generate({'user' => {'password' => new_password, 'original_password' => old_password}})
res = client.patch("./OS-KSCRUD/users/#{me.id}") do |req|
req.body = params
req.['Content-Type'] = 'application/json'
end
if res.status == 200
puts "Your password is updated. Please update your ~/.kaname configuration too."
else
raise "password updating is failed"
end
end
end
|