diff options
Diffstat (limited to 'qa/qa/resource/user.rb')
-rw-r--r-- | qa/qa/resource/user.rb | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/qa/qa/resource/user.rb b/qa/qa/resource/user.rb index f95a68918dc..d1a310c7c43 100644 --- a/qa/qa/resource/user.rb +++ b/qa/qa/resource/user.rb @@ -5,6 +5,8 @@ require 'securerandom' module QA module Resource class User < Base + InvalidUserError = Class.new(RuntimeError) + attr_reader :unique_id attr_writer :username, :password attr_accessor :admin, :provider, :extern_uid, :expect_fabrication_success @@ -21,6 +23,13 @@ module QA @expect_fabrication_success = true end + def self.default + Resource::User.new.tap 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? api_resource&.dig(:is_admin) || false end @@ -28,10 +37,12 @@ module QA def username @username || "qa-user-#{unique_id}" end + alias_method :ldap_username, :username def password @password || 'password' end + alias_method :ldap_password, :password def name @name ||= api_resource&.dig(:name) || "QA User #{unique_id}" @@ -138,8 +149,8 @@ module QA return {} unless extern_uid && provider { - extern_uid: extern_uid, - provider: provider + extern_uid: extern_uid, + provider: provider } end |