mirror of
https://github.com/ansible/awx.git
synced 2026-05-10 19:07:36 -02:30
move users tokens to features folder
This commit is contained in:
@@ -1 +1,2 @@
|
|||||||
@import 'credentials/_index';
|
@import 'credentials/_index';
|
||||||
|
@import 'users/tokens/_index';
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import atLibModels from '~models';
|
|||||||
import atFeaturesApplications from '~features/applications';
|
import atFeaturesApplications from '~features/applications';
|
||||||
import atFeaturesCredentials from '~features/credentials';
|
import atFeaturesCredentials from '~features/credentials';
|
||||||
import atFeaturesTemplates from '~features/templates';
|
import atFeaturesTemplates from '~features/templates';
|
||||||
|
import atFeaturesUsers from '~features/users';
|
||||||
|
|
||||||
const MODULE_NAME = 'at.features';
|
const MODULE_NAME = 'at.features';
|
||||||
|
|
||||||
@@ -14,7 +15,8 @@ angular.module(MODULE_NAME, [
|
|||||||
atLibModels,
|
atLibModels,
|
||||||
atFeaturesApplications,
|
atFeaturesApplications,
|
||||||
atFeaturesCredentials,
|
atFeaturesCredentials,
|
||||||
atFeaturesTemplates
|
atFeaturesTemplates,
|
||||||
|
atFeaturesUsers
|
||||||
]);
|
]);
|
||||||
|
|
||||||
export default MODULE_NAME;
|
export default MODULE_NAME;
|
||||||
|
|||||||
8
awx/ui/client/features/users/index.js
Normal file
8
awx/ui/client/features/users/index.js
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
import atFeaturesUsersTokens from '~features/users/tokens';
|
||||||
|
|
||||||
|
const MODULE_NAME = 'at.features.users';
|
||||||
|
|
||||||
|
angular
|
||||||
|
.module(MODULE_NAME, [atFeaturesUsersTokens]);
|
||||||
|
|
||||||
|
export default MODULE_NAME;
|
||||||
@@ -7,6 +7,3 @@
|
|||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
width: 130px;
|
width: 130px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.TokenModal-value {
|
|
||||||
}
|
|
||||||
9
awx/ui/client/features/users/tokens/index.js
Normal file
9
awx/ui/client/features/users/tokens/index.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
import TokensStrings from './tokens.strings';
|
||||||
|
|
||||||
|
const MODULE_NAME = 'at.features.users.tokens';
|
||||||
|
|
||||||
|
angular
|
||||||
|
.module(MODULE_NAME, [])
|
||||||
|
.service('TokensStrings', TokensStrings);
|
||||||
|
|
||||||
|
export default MODULE_NAME;
|
||||||
@@ -25,7 +25,10 @@ function TokensStrings (BaseString) {
|
|||||||
ERROR_HEADER: t.s('COULD NOT CREATE TOKEN'),
|
ERROR_HEADER: t.s('COULD NOT CREATE TOKEN'),
|
||||||
ERROR_BODY_LABEL: t.s('Returned status:'),
|
ERROR_BODY_LABEL: t.s('Returned status:'),
|
||||||
LAST_USED_LABEL: t.s('by'),
|
LAST_USED_LABEL: t.s('by'),
|
||||||
DELETE_ACTION_LABEL: t.s('DELETE')
|
DELETE_ACTION_LABEL: t.s('DELETE'),
|
||||||
|
SCOPE_PLACEHOLDER: t.s('Select a scope'),
|
||||||
|
SCOPE_READ_LABEL: t.s('Read'),
|
||||||
|
SCOPE_WRITE_LABEL: t.s('Write')
|
||||||
};
|
};
|
||||||
|
|
||||||
ns.list = {
|
ns.list = {
|
||||||
@@ -33,27 +33,25 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
resolve: {
|
resolve: {
|
||||||
ListDefinition: [() => {
|
ListDefinition: [() => ({
|
||||||
return {
|
name: 'applications',
|
||||||
name: 'applications',
|
iterator: 'application',
|
||||||
iterator: 'application',
|
hover: true,
|
||||||
hover: true,
|
index: false,
|
||||||
index: false,
|
fields: {
|
||||||
fields: {
|
name: {
|
||||||
name: {
|
key: true,
|
||||||
key: true,
|
label: 'Name',
|
||||||
label: 'Name',
|
columnClass: 'col-lg-4 col-md-6 col-sm-8 col-xs-8',
|
||||||
columnClass: 'col-lg-4 col-md-6 col-sm-8 col-xs-8',
|
awToolTip: '{{application.description | sanitize}}',
|
||||||
awToolTip: '{{application.description | sanitize}}',
|
dataPlacement: 'top'
|
||||||
dataPlacement: 'top'
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
actions: {
|
},
|
||||||
},
|
actions: {
|
||||||
fieldActions: {
|
},
|
||||||
}
|
fieldActions: {
|
||||||
}
|
}
|
||||||
}],
|
})],
|
||||||
Dataset: ['QuerySet', 'GetBasePath', '$stateParams', 'ListDefinition',
|
Dataset: ['QuerySet', 'GetBasePath', '$stateParams', 'ListDefinition',
|
||||||
(qs, GetBasePath, $stateParams, list) => qs.search(
|
(qs, GetBasePath, $stateParams, list) => qs.search(
|
||||||
GetBasePath('applications'),
|
GetBasePath('applications'),
|
||||||
@@ -68,4 +66,4 @@ export default {
|
|||||||
$('body').removeClass('modal-open');
|
$('body').removeClass('modal-open');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
@@ -1,4 +1,7 @@
|
|||||||
function AddTokensController (models, $state, strings, Rest, Alert, Wait, GetBasePath, $filter) {
|
function AddTokensController (
|
||||||
|
models, $state, strings, Rest, Alert, Wait, GetBasePath,
|
||||||
|
$filter, ProcessErrors
|
||||||
|
) {
|
||||||
const vm = this || {};
|
const vm = this || {};
|
||||||
const { application } = models;
|
const { application } = models;
|
||||||
|
|
||||||
@@ -28,21 +31,29 @@ function AddTokensController (models, $state, strings, Rest, Alert, Wait, GetBas
|
|||||||
vm.form.description.required = false;
|
vm.form.description.required = false;
|
||||||
|
|
||||||
vm.form.scope = {
|
vm.form.scope = {
|
||||||
choices: ['', 'read', 'write'],
|
choices: [
|
||||||
|
'',
|
||||||
|
'read',
|
||||||
|
'write'
|
||||||
|
],
|
||||||
help_text: strings.get('add.SCOPE_HELP_TEXT'),
|
help_text: strings.get('add.SCOPE_HELP_TEXT'),
|
||||||
id: 'scope',
|
id: 'scope',
|
||||||
label: 'Scope',
|
label: 'Scope',
|
||||||
required: true,
|
required: true,
|
||||||
_component: 'at-input-select',
|
_component: 'at-input-select',
|
||||||
_data: ['', 'read', 'write'],
|
_data: [
|
||||||
|
strings.get('add.SCOPE_PLACEHOLDER'),
|
||||||
|
strings.get('add.SCOPE_READ_LABEL'),
|
||||||
|
strings.get('add.SCOPE_WRITE_LABEL')
|
||||||
|
],
|
||||||
_exp: 'choice for (index, choice) in state._data',
|
_exp: 'choice for (index, choice) in state._data',
|
||||||
_format: 'array'
|
_format: 'array'
|
||||||
}
|
};
|
||||||
|
|
||||||
vm.form.save = data => {
|
vm.form.save = payload => {
|
||||||
Rest.setUrl(GetBasePath('users') + $state.params.user_id + '/authorized_tokens');
|
Rest.setUrl(`${GetBasePath('users')}${$state.params.user_id}/authorized_tokens`);
|
||||||
return Rest.post(data)
|
return Rest.post(payload)
|
||||||
.then(({data}) => {
|
.then(({ data }) => {
|
||||||
Alert(strings.get('add.TOKEN_MODAL_HEADER'), `
|
Alert(strings.get('add.TOKEN_MODAL_HEADER'), `
|
||||||
<div class="TokenModal">
|
<div class="TokenModal">
|
||||||
<div class="TokenModal-label">
|
<div class="TokenModal-label">
|
||||||
@@ -71,8 +82,8 @@ function AddTokensController (models, $state, strings, Rest, Alert, Wait, GetBas
|
|||||||
`, null, null, null, null, null, true);
|
`, null, null, null, null, null, true);
|
||||||
Wait('stop');
|
Wait('stop');
|
||||||
})
|
})
|
||||||
.catch(({data, status}) => {
|
.catch(({ data, status }) => {
|
||||||
ProcessErrors($scope, data, status, null, {
|
ProcessErrors(null, data, status, null, {
|
||||||
hdr: strings.get('add.ERROR_HEADER'),
|
hdr: strings.get('add.ERROR_HEADER'),
|
||||||
msg: `${strings.get('add.ERROR_BODY_LABEL')} ${status}`
|
msg: `${strings.get('add.ERROR_BODY_LABEL')} ${status}`
|
||||||
});
|
});
|
||||||
@@ -80,7 +91,7 @@ function AddTokensController (models, $state, strings, Rest, Alert, Wait, GetBas
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
vm.form.onSaveSuccess = res => {
|
vm.form.onSaveSuccess = () => {
|
||||||
$state.go('^', { user_id: $state.params.user_id }, { reload: true });
|
$state.go('^', { user_id: $state.params.user_id }, { reload: true });
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -88,12 +99,13 @@ function AddTokensController (models, $state, strings, Rest, Alert, Wait, GetBas
|
|||||||
AddTokensController.$inject = [
|
AddTokensController.$inject = [
|
||||||
'resolvedModels',
|
'resolvedModels',
|
||||||
'$state',
|
'$state',
|
||||||
'ApplicationsStrings',
|
'TokensStrings',
|
||||||
'Rest',
|
'Rest',
|
||||||
'Alert',
|
'Alert',
|
||||||
'Wait',
|
'Wait',
|
||||||
'GetBasePath',
|
'GetBasePath',
|
||||||
'$filter'
|
'$filter',
|
||||||
|
'ProcessErrors'
|
||||||
];
|
];
|
||||||
|
|
||||||
export default AddTokensController;
|
export default AddTokensController;
|
||||||
@@ -1,10 +1,9 @@
|
|||||||
import { N_ } from '../i18n';
|
import { N_ } from '../../../src/i18n';
|
||||||
import AddController from './users-tokens-add.controller';
|
import AddController from './users-tokens-add.controller';
|
||||||
|
|
||||||
const addTemplate = require('~src/users/users-tokens-add.partial.html');
|
const addTemplate = require('~features/users/tokens/users-tokens-add.partial.html');
|
||||||
|
|
||||||
function TokensDetailResolve ($q, Application) {
|
function TokensDetailResolve ($q, Application) {
|
||||||
|
|
||||||
const promises = {};
|
const promises = {};
|
||||||
|
|
||||||
promises.application = new Application('options');
|
promises.application = new Application('options');
|
||||||
@@ -18,12 +17,12 @@ TokensDetailResolve.$inject = [
|
|||||||
];
|
];
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
url: "/add-token",
|
url: '/add-token',
|
||||||
name: 'users.edit.tokens.add',
|
name: 'users.edit.tokens.add',
|
||||||
params: {
|
params: {
|
||||||
},
|
},
|
||||||
ncyBreadcrumb: {
|
ncyBreadcrumb: {
|
||||||
label: N_("CREATE TOKEN")
|
label: N_('CREATE TOKEN')
|
||||||
},
|
},
|
||||||
views: {
|
views: {
|
||||||
'preFormView@users.edit': {
|
'preFormView@users.edit': {
|
||||||
@@ -47,7 +47,7 @@ function ListTokensController (
|
|||||||
|
|
||||||
let html = $filter('longDate')(lastUsed);
|
let html = $filter('longDate')(lastUsed);
|
||||||
|
|
||||||
const { username, id } = _.get(user, 'summary_fields.last_used', {});
|
const { username, id } = _.get(token, 'summary_fields.last_used', {});
|
||||||
|
|
||||||
if (username && id) {
|
if (username && id) {
|
||||||
html += ` ${strings.get('add.LAST_USED_LABEL')} <a href="/#/users/${id}">${$filter('sanitize')(username)}</a>`;
|
html += ` ${strings.get('add.LAST_USED_LABEL')} <a href="/#/users/${id}">${$filter('sanitize')(username)}</a>`;
|
||||||
@@ -1,19 +1,17 @@
|
|||||||
import { N_ } from '../i18n';
|
import { N_ } from '../../../src/i18n';
|
||||||
|
|
||||||
import ListController from './users-tokens-list.controller';
|
import ListController from './users-tokens-list.controller';
|
||||||
|
|
||||||
const listTemplate = require('~src/users/users-tokens-list.partial.html');
|
const listTemplate = require('~features/users/tokens/users-tokens-list.partial.html');
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
url: "/tokens",
|
url: '/tokens',
|
||||||
name: 'users.edit.tokens',
|
name: 'users.edit.tokens',
|
||||||
params: {
|
|
||||||
},
|
|
||||||
ncyBreadcrumb: {
|
ncyBreadcrumb: {
|
||||||
label: N_("TOKENS")
|
label: N_('TOKENS')
|
||||||
},
|
},
|
||||||
views: {
|
views: {
|
||||||
'related': {
|
related: {
|
||||||
templateUrl: listTemplate,
|
templateUrl: listTemplate,
|
||||||
controller: ListController,
|
controller: ListController,
|
||||||
controllerAs: 'vm'
|
controllerAs: 'vm'
|
||||||
@@ -36,7 +34,7 @@ export default {
|
|||||||
'QuerySet',
|
'QuerySet',
|
||||||
($stateParams, Wait, GetBasePath, qs) => {
|
($stateParams, Wait, GetBasePath, qs) => {
|
||||||
const searchParam = $stateParams.token_search;
|
const searchParam = $stateParams.token_search;
|
||||||
const searchPath = GetBasePath('users') + $stateParams.user_id + '/tokens';
|
const searchPath = `${GetBasePath('users')}${$stateParams.user_id}/tokens`;
|
||||||
Wait('start');
|
Wait('start');
|
||||||
return qs.search(searchPath, searchParam)
|
return qs.search(searchPath, searchParam)
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
@@ -136,7 +136,6 @@
|
|||||||
@import '../../src/tooltip/tooltip.block.less';
|
@import '../../src/tooltip/tooltip.block.less';
|
||||||
@import '../../src/workflow-results/workflow-status-bar/workflow-status-bar.block.less';
|
@import '../../src/workflow-results/workflow-status-bar/workflow-status-bar.block.less';
|
||||||
@import '../../src/workflow-results/workflow-results.block.less';
|
@import '../../src/workflow-results/workflow-results.block.less';
|
||||||
@import '../../src/users/token-modal.block.less';
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -9,10 +9,10 @@ import UsersAdd from './add/users-add.controller';
|
|||||||
import UsersEdit from './edit/users-edit.controller';
|
import UsersEdit from './edit/users-edit.controller';
|
||||||
import UserForm from './users.form';
|
import UserForm from './users.form';
|
||||||
import UserList from './users.list';
|
import UserList from './users.list';
|
||||||
import UserTokensListRoute from './users-tokens-list.route';
|
|
||||||
import UserTokensAddRoute from './users-tokens-add.route';
|
import UserTokensListRoute from '../../features/users/tokens/users-tokens-list.route';
|
||||||
import UserTokensAddApplicationRoute from './users-tokens-add-application.route';
|
import UserTokensAddRoute from '../../features/users/tokens/users-tokens-add.route';
|
||||||
import TokensStrings from './tokens.strings';
|
import UserTokensAddApplicationRoute from '../../features/users/tokens/users-tokens-add-application.route';
|
||||||
|
|
||||||
import { N_ } from '../i18n';
|
import { N_ } from '../i18n';
|
||||||
|
|
||||||
@@ -23,8 +23,6 @@ angular.module('Users', [])
|
|||||||
.controller('UsersEdit', UsersEdit)
|
.controller('UsersEdit', UsersEdit)
|
||||||
.factory('UserForm', UserForm)
|
.factory('UserForm', UserForm)
|
||||||
.factory('UserList', UserList)
|
.factory('UserList', UserList)
|
||||||
.service('TokensStrings', TokensStrings)
|
|
||||||
|
|
||||||
.config(['$stateProvider', 'stateDefinitionsProvider', '$stateExtenderProvider',
|
.config(['$stateProvider', 'stateDefinitionsProvider', '$stateExtenderProvider',
|
||||||
function($stateProvider, stateDefinitionsProvider, $stateExtenderProvider) {
|
function($stateProvider, stateDefinitionsProvider, $stateExtenderProvider) {
|
||||||
let stateDefinitions = stateDefinitionsProvider.$get();
|
let stateDefinitions = stateDefinitionsProvider.$get();
|
||||||
|
|||||||
Reference in New Issue
Block a user