Method: GoodData::Project#resolve_roles

Defined in:
lib/gooddata/models/project.rb

#resolve_roles(login, desired_roles, options = {}) ⇒ Object



2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
# File 'lib/gooddata/models/project.rb', line 2174

def resolve_roles(, desired_roles, options = {})
  user = if .is_a?(String) && .include?('@')
           USER_ACCOUNT_PATH + 
         elsif .is_a?(String)
           
         elsif .is_a?(Hash) && [:login]
           USER_ACCOUNT_PATH + [:login]
         elsif .is_a?(Hash) && [:uri]
           [:uri]
         elsif .respond_to?(:uri) && .uri
           .uri
         elsif .respond_to?(:login) && .
           USER_ACCOUNT_PATH + .
         else
           fail "Unsupported user specification #{}"
         end

  role_list = options[:roles] || roles
  desired_roles = Array(desired_roles)
  roles = desired_roles.map do |role_name|
    role = get_role(role_name, role_list)
    fail ArgumentError, "Invalid role '#{role_name}' specified for user '#{GoodData::Helpers.last_uri_part(user)}'" if role.nil?
    role.uri
  end
  [user, roles]
end