diff --git a/qa/qa/resource/user.rb b/qa/qa/resource/user.rb index 69a92e5364b6ceea5b7b21cf88d459bcbafd294a..6bf2bd81cfe581b9869de04616bdeba4a7168079 100644 --- a/qa/qa/resource/user.rb +++ b/qa/qa/resource/user.rb @@ -21,42 +21,6 @@ class User < Base :last_name, :email - def self.default - Resource::User.init do |user| - user.username = Runtime::User.ldap_user? ? Runtime::User.ldap_username : Runtime::User.username - user.password = Runtime::User.ldap_user? ? Runtime::User.ldap_password : Runtime::User.password - end - end - - def self.fabricate_or_use(username = nil, password = nil) - if Runtime::Env.signup_disabled? && !Runtime::Env.personal_access_tokens_disabled? - fabricate_via_api! do |user| - user.username = username - user.password = password - end - else - fabricate! do |user| - user.username = username if username - user.password = password if password - end - end - end - - # Get users from the API - # - # @param [Integer] per_page the number of pages to traverse (used for pagination) - # @return [Array<Hash>] parsed response body - def self.all(per_page: 100) - response = nil - Resource::User.init do |user| - response = user.get(Runtime::API::Request.new( - Runtime::API::Client.as_admin, '/users', per_page: per_page.to_s - ).url) - - raise ResourceQueryError unless response.code == 200 - end.parse_body(response) - end - def initialize @admin = false @hard_delete_on_api_removal = false @@ -65,11 +29,11 @@ def initialize @email_domain = 'example.com' end - # Override api_client to make sure admin pat is always used - # - # @return [QA::Runtime::API::Client] - def api_client - @api_client ||= Runtime::API::Client.as_admin + def self.default + Resource::User.init do |user| + user.username = Runtime::User.ldap_user? ? Runtime::User.ldap_username : Runtime::User.username + user.password = Runtime::User.ldap_user? ? Runtime::User.ldap_password : Runtime::User.password + end end def admin? @@ -193,6 +157,35 @@ def api_post_body }.merge(ldap_post_body) end + def self.fabricate_or_use(username = nil, password = nil) + if Runtime::Env.signup_disabled? && !Runtime::Env.personal_access_tokens_disabled? + fabricate_via_api! do |user| + user.username = username + user.password = password + end + else + fabricate! do |user| + user.username = username if username + user.password = password if password + end + end + end + + # Get users from the API + # + # @param [Integer] per_page the number of pages to traverse (used for pagination) + # @return [Array<Hash>] parsed response body + def self.all(per_page: 100) + response = nil + Resource::User.init do |user| + response = user.get(Runtime::API::Request.new( + Runtime::API::Client.as_admin, '/users', per_page: per_page.to_s + ).url) + + raise ResourceQueryError unless response.code == 200 + end.parse_body(response) + end + def approve! response = post(Runtime::API::Request.new(api_client, api_approve_path).url, nil) return if response.code == 201