mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
Update the delete dialog on details user page
Add option to preserve user to the delete dialog on active user's details page. The delete dialog is the same as on the page of all active users. https://fedorahosted.org/freeipa/ticket/5370 Reviewed-By: Petr Vobornik <pvoborni@redhat.com>
This commit is contained in:
parent
3b37e29ac6
commit
5f7433839f
@ -61,7 +61,13 @@ return {
|
|||||||
name: 'user',
|
name: 'user',
|
||||||
policies: [
|
policies: [
|
||||||
IPA.search_facet_update_policy,
|
IPA.search_facet_update_policy,
|
||||||
IPA.details_facet_update_policy
|
IPA.details_facet_update_policy,
|
||||||
|
{
|
||||||
|
$factory: IPA.facet_update_policy,
|
||||||
|
source_facet: 'details',
|
||||||
|
dest_entity: 'user',
|
||||||
|
dest_facet: 'search_preserved'
|
||||||
|
}
|
||||||
],
|
],
|
||||||
facets: [
|
facets: [
|
||||||
{
|
{
|
||||||
@ -329,7 +335,14 @@ return {
|
|||||||
$type: 'enable',
|
$type: 'enable',
|
||||||
hide_cond: ['preserved-user']
|
hide_cond: ['preserved-user']
|
||||||
},
|
},
|
||||||
'delete',
|
{
|
||||||
|
$type: 'delete_active_user',
|
||||||
|
hide_cond: ['preserved-user']
|
||||||
|
},
|
||||||
|
{
|
||||||
|
$type: 'delete',
|
||||||
|
show_cond: ['preserved-user']
|
||||||
|
},
|
||||||
{
|
{
|
||||||
$type: 'reset_password',
|
$type: 'reset_password',
|
||||||
hide_cond: ['preserved-user']
|
hide_cond: ['preserved-user']
|
||||||
@ -355,8 +368,9 @@ return {
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
header_actions: [
|
header_actions: [
|
||||||
'reset_password', 'enable', 'disable', 'delete',
|
'reset_password', 'enable', 'disable','delete_active_user',
|
||||||
'unlock', 'add_otptoken', 'automember_rebuild', 'request_cert'
|
'delete', 'unlock', 'add_otptoken', 'automember_rebuild',
|
||||||
|
'request_cert'
|
||||||
],
|
],
|
||||||
state: {
|
state: {
|
||||||
evaluators: [
|
evaluators: [
|
||||||
@ -711,6 +725,46 @@ IPA.user.reset_password_action = function(spec) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
IPA.user.delete_active_user_action = function(spec) {
|
||||||
|
spec = spec || {};
|
||||||
|
spec.name = spec.name || 'delete_active_user';
|
||||||
|
spec.label = spec.label || '@i18n:buttons.remove';
|
||||||
|
|
||||||
|
var that = IPA.action(spec);
|
||||||
|
|
||||||
|
that.execute_action = function(facet) {
|
||||||
|
|
||||||
|
var pkey = facet.get_pkey();
|
||||||
|
var msg = text.get('@i18n:actions.delete_confirm');
|
||||||
|
msg = msg.replace('${object}', pkey);
|
||||||
|
|
||||||
|
var spec = {
|
||||||
|
message: msg,
|
||||||
|
on_ok: function() {
|
||||||
|
rpc.command({
|
||||||
|
entity: facet.entity.name,
|
||||||
|
method: 'del',
|
||||||
|
args: [pkey],
|
||||||
|
options: {
|
||||||
|
preserve: dialog.option_radio.get_value()[0]
|
||||||
|
},
|
||||||
|
on_success: function(data) {
|
||||||
|
IPA.notify_success(data.result.summary);
|
||||||
|
facet.on_update.notify();
|
||||||
|
facet.redirect();
|
||||||
|
}
|
||||||
|
}).execute();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var dialog = IPA.user.details_delete_dialog(spec);
|
||||||
|
|
||||||
|
dialog.open();
|
||||||
|
};
|
||||||
|
|
||||||
|
return that;
|
||||||
|
};
|
||||||
|
|
||||||
IPA.user.add_otptoken_action = function(spec) {
|
IPA.user.add_otptoken_action = function(spec) {
|
||||||
|
|
||||||
spec = spec || {};
|
spec = spec || {};
|
||||||
@ -864,6 +918,50 @@ IPA.user.stageuser_sidebar_policy = function(spec) {
|
|||||||
return that;
|
return that;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
IPA.user.create_active_user_del_dialog = function(dialog) {
|
||||||
|
|
||||||
|
dialog.deleter_dialog_create_content();
|
||||||
|
|
||||||
|
dialog.option_layout = IPA.fluid_layout({
|
||||||
|
label_cls: 'col-sm-3',
|
||||||
|
widget_cls: 'col-sm-9'
|
||||||
|
});
|
||||||
|
|
||||||
|
dialog.option_radio = IPA.radio_widget({
|
||||||
|
name: 'preserve',
|
||||||
|
label: '@i18n:objects.user.delete_mode',
|
||||||
|
options: [
|
||||||
|
{ label: '@i18n:objects.user.mode_delete', value: 'false' },
|
||||||
|
{ label: '@i18n:objects.user.mode_preserve', value: 'true' }
|
||||||
|
],
|
||||||
|
default_value: 'false'
|
||||||
|
});
|
||||||
|
|
||||||
|
var html = dialog.option_layout.create([dialog.option_radio]);
|
||||||
|
dialog.container.append(html);
|
||||||
|
dialog.option_radio.set_value(['']);
|
||||||
|
|
||||||
|
return dialog;
|
||||||
|
};
|
||||||
|
|
||||||
|
IPA.user.details_delete_dialog = function(spec) {
|
||||||
|
spec = spec || {};
|
||||||
|
|
||||||
|
var that = IPA.deleter_dialog(spec);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds options to user-del command
|
||||||
|
* @type {IPA.radio_widget}
|
||||||
|
*/
|
||||||
|
that.option_radio = null;
|
||||||
|
|
||||||
|
that.create_content = function() {
|
||||||
|
that = IPA.user.create_active_user_del_dialog(that);
|
||||||
|
};
|
||||||
|
|
||||||
|
return that;
|
||||||
|
};
|
||||||
|
|
||||||
IPA.user.deleter_dialog = function(spec) {
|
IPA.user.deleter_dialog = function(spec) {
|
||||||
|
|
||||||
spec = spec || {};
|
spec = spec || {};
|
||||||
@ -877,27 +975,7 @@ IPA.user.deleter_dialog = function(spec) {
|
|||||||
that.option_radio = null;
|
that.option_radio = null;
|
||||||
|
|
||||||
that.create_content = function() {
|
that.create_content = function() {
|
||||||
|
that = IPA.user.create_active_user_del_dialog(that);
|
||||||
that.deleter_dialog_create_content();
|
|
||||||
|
|
||||||
that.option_layout = IPA.fluid_layout({
|
|
||||||
label_cls: 'col-sm-3',
|
|
||||||
widget_cls: 'col-sm-9'
|
|
||||||
});
|
|
||||||
|
|
||||||
that.option_radio = IPA.radio_widget({
|
|
||||||
name: 'preserve',
|
|
||||||
label: '@i18n:objects.user.delete_mode',
|
|
||||||
options: [
|
|
||||||
{ label: '@i18n:objects.user.mode_delete', value: 'false' },
|
|
||||||
{ label: '@i18n:objects.user.mode_preserve', value: 'true' }
|
|
||||||
],
|
|
||||||
default_value: 'false'
|
|
||||||
});
|
|
||||||
|
|
||||||
var html = that.option_layout.create([that.option_radio]);
|
|
||||||
that.container.append(html);
|
|
||||||
that.option_radio.set_value(['']);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
that.create_command = function() {
|
that.create_command = function() {
|
||||||
@ -923,6 +1001,7 @@ exp.register = function() {
|
|||||||
e.register({type: 'user', spec: exp.entity_spec});
|
e.register({type: 'user', spec: exp.entity_spec});
|
||||||
a.register('reset_password', IPA.user.reset_password_action);
|
a.register('reset_password', IPA.user.reset_password_action);
|
||||||
a.register('add_otptoken', IPA.user.add_otptoken_action);
|
a.register('add_otptoken', IPA.user.add_otptoken_action);
|
||||||
|
a.register('delete_active_user', IPA.user.delete_active_user_action);
|
||||||
d.copy('password', 'user_password', {
|
d.copy('password', 'user_password', {
|
||||||
factory: IPA.user.password_dialog,
|
factory: IPA.user.password_dialog,
|
||||||
pre_ops: [IPA.user.password_dialog_pre_op]
|
pre_ops: [IPA.user.password_dialog_pre_op]
|
||||||
|
Loading…
Reference in New Issue
Block a user