|
@@ -2829,6 +2829,22 @@ wait untill text in selector disabppears
|
|
|
lastname: 'Manage Lastname' + random,
|
|
|
email: user_email,
|
|
|
password: 'some-pass',
|
|
|
+ role: 'Admin', # optional, choose among [Admin, Agent, Customer]
|
|
|
+ # defaults to Customer if not provided
|
|
|
+ },
|
|
|
+ )
|
|
|
+
|
|
|
+ user_create(
|
|
|
+ browser: browser2,
|
|
|
+ data: {
|
|
|
+ #login: 'some login' + random,
|
|
|
+ firstname: 'Manage Firstname' + random,
|
|
|
+ lastname: 'Manage Lastname' + random,
|
|
|
+ email: user_email,
|
|
|
+ password: 'some-pass',
|
|
|
+ role: 'Agent', # when the role is Agent an array of permissions for each group is optionally accepted
|
|
|
+ permissions: { 1 => %w[read create overview],
|
|
|
+ 2 => ['full'], }
|
|
|
},
|
|
|
)
|
|
|
|
|
@@ -2901,11 +2917,46 @@ wait untill text in selector disabppears
|
|
|
retry if retries < 3
|
|
|
end
|
|
|
end
|
|
|
- check(
|
|
|
+
|
|
|
+ if data[:role]
|
|
|
+ if data[:role] == 'Admin'
|
|
|
+ check(
|
|
|
+ browser: instance,
|
|
|
+ css: '.modal input[name=role_ids][value=1]',
|
|
|
+ )
|
|
|
+ elsif data[:role] == 'Customer'
|
|
|
+ check(
|
|
|
+ browser: instance,
|
|
|
+ css: '.modal input[name=role_ids][value=3]',
|
|
|
+ )
|
|
|
+ elsif data[:role] == 'Agent'
|
|
|
+ check(
|
|
|
+ browser: instance,
|
|
|
+ css: '.modal input[name=role_ids][value=2]',
|
|
|
+ )
|
|
|
+ data[:permissions].each do |key, value|
|
|
|
+ value.each do |permission|
|
|
|
+ check(
|
|
|
+ browser: instance,
|
|
|
+ css: ".modal input[name=\"group_ids::#{key}\"][value=\"#{permission}\"]",
|
|
|
+ )
|
|
|
+ end
|
|
|
+ end
|
|
|
+ else
|
|
|
+ raise "Unknown :role \"#{data[:role]}\" in user_create()"
|
|
|
+ end
|
|
|
+ else
|
|
|
+ check(
|
|
|
+ browser: instance,
|
|
|
+ css: '.modal input[name=role_ids][value=3]',
|
|
|
+ )
|
|
|
+ end
|
|
|
+
|
|
|
+ click(
|
|
|
browser: instance,
|
|
|
- css: '.modal input[name=role_ids][value=3]',
|
|
|
+ css: '.modal .js-submit',
|
|
|
)
|
|
|
- instance.find_elements(css: '.modal button.js-submit')[0].click
|
|
|
+
|
|
|
modal_disappear(
|
|
|
browser: instance,
|
|
|
timeout: 10,
|
|
@@ -2939,6 +2990,144 @@ wait untill text in selector disabppears
|
|
|
assert(true, 'user created')
|
|
|
end
|
|
|
|
|
|
+=begin
|
|
|
+
|
|
|
+ user_edit(
|
|
|
+ browser: browser2,
|
|
|
+ data: {
|
|
|
+ login: 'some login' + random,
|
|
|
+ firstname: 'Manage Firstname' + random,
|
|
|
+ lastname: 'Manage Lastname' + random,
|
|
|
+ email: user_email,
|
|
|
+ password: 'some-pass',
|
|
|
+ role: 'Agent', # when the role is Agent an array of permissions for each group is optionally accepted
|
|
|
+ permissions: { 1 => %w[read create overview],
|
|
|
+ 2 => ['full'], }
|
|
|
+ },
|
|
|
+ )
|
|
|
+
|
|
|
+=end
|
|
|
+
|
|
|
+ def user_edit(params = {})
|
|
|
+ switch_window_focus(params)
|
|
|
+ log('user_edit', params)
|
|
|
+
|
|
|
+ instance = params[:browser] || @browser
|
|
|
+ data = params[:data]
|
|
|
+
|
|
|
+ click(
|
|
|
+ browser: instance,
|
|
|
+ css: 'a[href="#manage"]',
|
|
|
+ mute_log: true,
|
|
|
+ )
|
|
|
+ click(
|
|
|
+ browser: instance,
|
|
|
+ css: '.content.active a[href="#manage/users"]',
|
|
|
+ mute_log: true,
|
|
|
+ )
|
|
|
+ instance.find_elements(css: '.content.active .user-list td:first-child').each do |element|
|
|
|
+ next if element.text.strip != data[:login]
|
|
|
+ element.click
|
|
|
+ break
|
|
|
+ end
|
|
|
+ modal_ready(browser: instance)
|
|
|
+ if data[:firstname]
|
|
|
+ element = instance.find_elements(css: '.modal input[name=firstname]')[0]
|
|
|
+ element.clear
|
|
|
+ element.send_keys(data[:firstname])
|
|
|
+ end
|
|
|
+ if data[:lastname]
|
|
|
+ element = instance.find_elements(css: '.modal input[name=lastname]')[0]
|
|
|
+ element.clear
|
|
|
+ element.send_keys(data[:lastname])
|
|
|
+ end
|
|
|
+ if data[:email]
|
|
|
+ element = instance.find_elements(css: '.modal input[name=email]')[0]
|
|
|
+ element.clear
|
|
|
+ element.send_keys(data[:email])
|
|
|
+ end
|
|
|
+ if data[:password]
|
|
|
+ element = instance.find_elements(css: '.modal input[name=password]')[0]
|
|
|
+ element.clear
|
|
|
+ element.send_keys(data[:password])
|
|
|
+ element = instance.find_elements(css: '.modal input[name=password_confirm]')[0]
|
|
|
+ element.clear
|
|
|
+ element.send_keys(data[:password])
|
|
|
+ end
|
|
|
+ if data[:phone]
|
|
|
+ element = instance.find_elements(css: '.modal input[name=phone]')[0]
|
|
|
+ element.clear
|
|
|
+ element.send_keys(data[:phone])
|
|
|
+ end
|
|
|
+ if data[:active].present?
|
|
|
+ select(css: 'select[name="active"]', value: data[:active] ? 'active' : 'inactive' )
|
|
|
+ end
|
|
|
+
|
|
|
+ if data[:organization]
|
|
|
+ element = instance.find_elements(css: '.modal input.searchableSelect-main')[0]
|
|
|
+ element.clear
|
|
|
+ element.send_keys(data[:organization])
|
|
|
+
|
|
|
+ begin
|
|
|
+ retries ||= 0
|
|
|
+ target = nil
|
|
|
+ until target
|
|
|
+ sleep 0.5
|
|
|
+ target = instance.find_elements(css: ".modal li[title='#{data[:organization]}']")[0]
|
|
|
+ end
|
|
|
+ target.click()
|
|
|
+ rescue Selenium::WebDriver::Error::StaleElementReferenceError
|
|
|
+ sleep retries
|
|
|
+ retries += 1
|
|
|
+ retry if retries < 3
|
|
|
+ end
|
|
|
+ end
|
|
|
+
|
|
|
+ if data[:role]
|
|
|
+ if data[:role] == 'Admin'
|
|
|
+ check(
|
|
|
+ browser: instance,
|
|
|
+ css: '.modal input[name=role_ids][value=1]',
|
|
|
+ )
|
|
|
+ elsif data[:role] == 'Customer'
|
|
|
+ check(
|
|
|
+ browser: instance,
|
|
|
+ css: '.modal input[name=role_ids][value=3]',
|
|
|
+ )
|
|
|
+ elsif data[:role] == 'Agent'
|
|
|
+ check(
|
|
|
+ browser: instance,
|
|
|
+ css: '.modal input[name=role_ids][value=2]',
|
|
|
+ )
|
|
|
+ else
|
|
|
+ raise "Unknown :role \"#{data[:role]}\" in user_create()"
|
|
|
+ end
|
|
|
+ end
|
|
|
+
|
|
|
+ if data[:permissions].present?
|
|
|
+ data[:permissions].each do |key, value|
|
|
|
+ value.each do |permission|
|
|
|
+ check(
|
|
|
+ browser: instance,
|
|
|
+ css: ".modal input[name=\"group_ids::#{key}\"][value=\"#{permission}\"]",
|
|
|
+ )
|
|
|
+ end
|
|
|
+ end
|
|
|
+ end
|
|
|
+
|
|
|
+ click(
|
|
|
+ browser: instance,
|
|
|
+ css: '.modal .js-submit',
|
|
|
+ )
|
|
|
+
|
|
|
+ modal_disappear(
|
|
|
+ browser: instance,
|
|
|
+ timeout: 10,
|
|
|
+ )
|
|
|
+
|
|
|
+ assert(true, 'user updated')
|
|
|
+ end
|
|
|
+
|
|
|
=begin
|
|
|
|
|
|
organization_create(
|