Class: Yao::Resources::Role
Instance Attribute Summary
Attributes included from RestfullyAccessible
Class Method Summary collapse
-
.find_by_name(name, query = {}) ⇒ Array<Yao::Resources::Role>
override Yao::Resources::RestfullyAccessible#find_by_name This is workaround of keystone versioning v2.0/v3.
- .grant(role_name, to:, on:) ⇒ Faraday::Response
- .list_for_user(user_name, on:) ⇒ Array<Yao::Resources::Role>
-
.resources_path ⇒ String
override Yao::Resources::RestfullyAccessible#resources_path This is workaround of keystone versioning v2.0/v3.
- .revoke(role_name, from:, on:) ⇒ Faraday::Response
Methods inherited from Base
#[], #[]=, #created, friendly_attributes, #id, #initialize, map_attribute_to_attribute, map_attribute_to_resource, map_attribute_to_resources, #to_hash, #updated
Methods included from RestfullyAccessible
#admin=, #api_version, #api_version=, #as_member, #client, #create, #destroy, extended, #find_by_name, #get, #get!, #list, #resources_path, #resources_path=, #return_single_on_querying, #return_single_on_querying=, #update
Constructor Details
This class inherits a constructor from Yao::Resources::Base
Class Method Details
.find_by_name(name, query = {}) ⇒ Array<Yao::Resources::Role>
override Yao::Resources::RestfullyAccessible#find_by_name This is workaround of keystone versioning v2.0/v3.
15 16 17 18 19 20 21 |
# File 'lib/yao/resources/role.rb', line 15 def find_by_name(name, query={}) if api_version_v2? list.select{|r| r.name == name} else super end end |
.grant(role_name, to:, on:) ⇒ Faraday::Response
53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/yao/resources/role.rb', line 53 def grant(role_name, to:, on:) role = Yao::Role.get(role_name) user = Yao::User.get(to) tenant = if api_version_v2? Yao::Tenant.get(on) else Yao::Project.get(on) end # response is "204 Not Content" PUT(path_for_role_resource(tenant, user, role)) end |
.list_for_user(user_name, on:) ⇒ Array<Yao::Resources::Role>
37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/yao/resources/role.rb', line 37 def list_for_user(user_name, on:) user = Yao::User.get(user_name) tenant = if api_version_v2? Yao::Tenant.get(on) else Yao::Project.get(on) end res = GET(path_for_role_resource(tenant, user)) resources_from_json(res.body) end |
.resources_path ⇒ String
override Yao::Resources::RestfullyAccessible#resources_path This is workaround of keystone versioning v2.0/v3.
26 27 28 29 30 31 32 |
# File 'lib/yao/resources/role.rb', line 26 def resources_path if api_version_v2? "OS-KSADM/roles" else resources_name end end |
.revoke(role_name, from:, on:) ⇒ Faraday::Response
70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/yao/resources/role.rb', line 70 def revoke(role_name, from:, on:) role = Yao::Role.get(role_name) user = Yao::User.get(from) tenant = if api_version_v2? Yao::Tenant.get(on) else Yao::Project.get(on) end # response is "204 Not Content" DELETE(path_for_role_resource(tenant, user, role)) end |