/jira_4_4/useradmin.py
Python | 141 lines | 118 code | 23 blank | 0 comment | 4 complexity | 2dc0098dde1a757bfdfc1412e46ebc3d MD5 | raw file
Possible License(s): BSD-3-Clause
- from HTTPClient import NVPair
- from env import request, extractAll, extract
- from java.util.regex import Pattern
- class UserAdmin:
-
- def __init__(self, testId):
- self.requests = {
- 'browse' : request(testId, 'HTTP-REQ : user browser'),
- 'add' : request(testId + 1, 'HTTP-REQ : add user'),
- 'view' : request(testId + 2, 'HTTP-REQ : view user')
- }
- self.patterns = {
- 'user_avatars' : Pattern.compile('(?s)(\/secure\/useravatar\?.*?)\)'),
- 'atl_token' : Pattern.compile('name="atlassian-token" content="(.*?)"')
- }
-
-
- def browseSudo(self):
- req = self.requests['browse']
- page = req.GET('/secure/admin/user/UserBrowser.jspa').text
- token = extract(page, self.patterns['atl_token'])
- return {
- 'token' : token,
- 'destination' : '/secure/admin/user/UserBrowser.jspa'
- }
-
-
- def browse(self, cached=False):
- req = self.requests['browse']
-
- page = req.GET('/secure/admin/user/UserBrowser.jspa').text
-
- if not cached:
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css')
- req.GET('/s/en_US-64k3hp/664/2/1.0.9/_/download/batch/com.atlassian.plugin.atlassian-feedback-plugin:feedback/com.atlassian.plugin.atlassian-feedback-plugin:feedback.css')
- req.GET('/s/en_US-64k3hp/664/2/4.4.4/_/download/batch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch.css')
- req.GET('/s/en_US-64k3hp/664/2/1/_/download/superbatch/js/batch.js')
- req.GET('/s/en_US-64k3hp/664/2/1.0.9/_/download/batch/com.atlassian.plugin.atlassian-feedback-plugin:feedback/com.atlassian.plugin.atlassian-feedback-plugin:feedback.js')
- req.GET('/s/en_US-64k3hp/664/2/4.4.4/_/download/batch/com.atlassian.jira.jira-soy-plugin:soy-deps/com.atlassian.jira.jira-soy-plugin:soy-deps.js')
- req.GET('/s/en_US-64k3hp/664/2/1/_/download/superbatch/css/batch.css')
- req.GET('/s/en_US-64k3hp/664/2/4.4.4/_/download/batch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch.js')
- req.GET('/rest/api/1.0/shortcuts/664/1a83ddc68aaff4b4bd38ebf1e8d8c086/shortcuts.js')
- req.GET('/s/en_US-64k3hp/664/2/1/_/download/superbatch/css/images/icons/aui-message-icon-sprite.png')
- req.GET('/s/en_US-64k3hp/664/2/_/images/jira111x30.png')
- req.GET('/s/en_US-64k3hp/664/2/_/images/icons/ico_help.png')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css?media=print')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:avataror/jira.webresources:avataror.js')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:avatarpicker/jira.webresources:avatarpicker.js')
- req.GET('/rest/api/1.0/shortcuts/664/1a83ddc68aaff4b4bd38ebf1e8d8c086/shortcuts.js?context=admin')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:jira-admin/jira.webresources:jira-admin.js')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:avataror/jira.webresources:avataror.css')
- req.GET('/rest/api/1.0/header-separator?color=#ffffff&bgcolor=#114070')
- req.GET('/rest/api/1.0/dropdowns?color=#ffffff&bgcolor=#114070')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/images/icons/sprites/icons_module.png')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/images/menu_indicator_for_light_backgrounds.gif')
- req.GET('/rest/api/1.0/dropdowns?color=#ffffff&bgcolor=#3c78b5')
- req.GET('/s/en_US-64k3hp/664/2/1/_/images/icons/sprites/icons_module.png')
-
- for avatar in extractAll(page, self.patterns['user_avatars'], (('&', '&'), )):
- req.GET(avatar)
-
- return extract(page, self.patterns['atl_token'])
-
-
- def add(self, token, user={}, cached=False):
- req = self.requests['add']
- req.GET('/secure/admin/user/AddUser!default.jspa')
-
- if not cached:
- req.GET('/s/en_US-64k3hp/664/2/1.0.9/_/download/batch/com.atlassian.plugin.atlassian-feedback-plugin:feedback/com.atlassian.plugin.atlassian-feedback-plugin:feedback.css')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:avataror/jira.webresources:avataror.css')
- req.GET('/s/en_US-64k3hp/664/2/4.4.4/_/download/batch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch.css')
- req.GET('/s/en_US-64k3hp/664/2/1.0.9/_/download/batch/com.atlassian.plugin.atlassian-feedback-plugin:feedback/com.atlassian.plugin.atlassian-feedback-plugin:feedback.js')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:avataror/jira.webresources:avataror.js')
- req.GET('/s/en_US-64k3hp/664/2/1/_/download/superbatch/js/batch.js')
- req.GET('/s/en_US-64k3hp/664/2/4.4.4/_/download/batch/com.atlassian.jira.jira-soy-plugin:soy-deps/com.atlassian.jira.jira-soy-plugin:soy-deps.js')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:avatarpicker/jira.webresources:avatarpicker.js')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:jira-admin/jira.webresources:jira-admin.js')
- req.GET('/rest/api/1.0/shortcuts/664/1a83ddc68aaff4b4bd38ebf1e8d8c086/shortcuts.js?context=admin')
- req.GET('/s/en_US-64k3hp/664/2/4.4.4/_/download/batch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch.js')
- req.GET('/s/en_US-64k3hp/664/2/1/_/download/superbatch/css/batch.css')
- req.GET('/rest/api/1.0/dropdowns?color=#ffffff&bgcolor=#114070')
- req.GET('/rest/api/1.0/dropdowns?color=#ffffff&bgcolor=#3c78b5')
- req.GET('/s/en_US-64k3hp/664/2/1/_/download/superbatch/css/images/icons/aui-message-icon-sprite.png')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/images/menu_indicator_for_light_backgrounds.gif')
- req.GET('/s/en_US-64k3hp/664/2/_/images/jira111x30.png')
- req.GET('/s/en_US-64k3hp/664/2/1/_/images/icons/sprites/icons_module.png')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/images/aui-formbar-button-inactive-bg.png')
- req.GET('/rest/api/1.0/header-separator?color=#ffffff&bgcolor=#114070')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css?media=print')
- username = user['username']
- password = user['password']
- req.POST('/secure/admin/user/AddUser.jspa',
- (
- NVPair('atl_token', token),
- NVPair('username', username),
- NVPair('password', password),
- NVPair('confirm', password),
- NVPair('fullname', username),
- NVPair('email', username + '@example.com'),
- NVPair('Create', 'Create'),
- ), (
- NVPair('Content-Type', 'application/x-www-form-urlencoded'),
- ))
-
- return self.view(username, cached)
-
-
- def view(self, username, cached=False):
- req = self.requests['view']
- req.GET('/secure/admin/user/ViewUser.jspa?name=' + username)
-
- if not cached:
- req.GET('/s/en_US-64k3hp/664/2/1.0.9/_/download/batch/com.atlassian.plugin.atlassian-feedback-plugin:feedback/com.atlassian.plugin.atlassian-feedback-plugin:feedback.css')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:avataror/jira.webresources:avataror.css')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css')
- req.GET('/s/en_US-64k3hp/664/2/4.4.4/_/download/batch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch.css')
- req.GET('/s/en_US-64k3hp/664/2/1/_/download/superbatch/js/batch.js')
- req.GET('/s/en_US-64k3hp/664/2/1.0.9/_/download/batch/com.atlassian.plugin.atlassian-feedback-plugin:feedback/com.atlassian.plugin.atlassian-feedback-plugin:feedback.js')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:avataror/jira.webresources:avataror.js')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:avatarpicker/jira.webresources:avatarpicker.js')
- req.GET('/s/en_US-64k3hp/664/2/4.4.4/_/download/batch/com.atlassian.jira.jira-soy-plugin:soy-deps/com.atlassian.jira.jira-soy-plugin:soy-deps.js')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:jira-admin/jira.webresources:jira-admin.js')
- req.GET('/s/en_US-64k3hp/664/2/1/_/download/superbatch/css/batch.css')
- req.GET('/rest/api/1.0/shortcuts/664/1a83ddc68aaff4b4bd38ebf1e8d8c086/shortcuts.js?context=admin')
- req.GET('/s/en_US-64k3hp/664/2/4.4.4/_/download/batch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch/com.atlassian.jira.jira-admin-quicknav-plugin:admin-quicksearch.js')
- req.GET('/rest/api/1.0/dropdowns?color=#ffffff&bgcolor=#3c78b5')
- req.GET('/rest/api/1.0/header-separator?color=#ffffff&bgcolor=#114070')
- req.GET('/s/en_US-64k3hp/664/2/1/_/images/icons/sprites/icons_module.png')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/images/menu_indicator_for_light_backgrounds.gif')
- req.GET('/s/en_US-64k3hp/664/2/_/images/jira111x30.png')
- req.GET('/rest/api/1.0/dropdowns?color=#ffffff&bgcolor=#114070')
- req.GET('/s/en_US-64k3hp/664/2/1.0/_/download/batch/jira.webresources:global-static/jira.webresources:global-static.css?media=print')
-