From 46e3245fdedbf88050fffa6039d176914c242418 Mon Sep 17 00:00:00 2001 From: Pavel Vomacka Date: Wed, 20 Apr 2016 18:47:53 +0200 Subject: [PATCH] Add option to stage user from details page Add 'stage' option to the activity dropdown menu on preserved user details page. https://fedorahosted.org/freeipa/ticket/5371 Reviewed-By: Petr Vobornik --- install/ui/src/freeipa/stageuser.js | 24 ++++++++++++++++++++++++ install/ui/src/freeipa/user.js | 16 +++++++++++++--- install/ui/test/data/ipa_init.json | 1 + ipaserver/plugins/internal.py | 1 + 4 files changed, 39 insertions(+), 3 deletions(-) diff --git a/install/ui/src/freeipa/stageuser.js b/install/ui/src/freeipa/stageuser.js index 12debed30..bd563847b 100644 --- a/install/ui/src/freeipa/stageuser.js +++ b/install/ui/src/freeipa/stageuser.js @@ -413,6 +413,29 @@ stageuser.batch_stage_action = function(spec) { return IPA.batch_items_action(spec); }; +stageuser.stage_action = function(spec) { + + spec = spec || {}; + + spec.name = spec.name || 'stage'; + spec.method = spec.method || 'stage'; + spec.show_cond = spec.show_cond || ['preserved_user']; + spec.needs_confirm = spec.needs_confirm !== undefined ? spec.needs_confirm : true; + spec.confirm_msg = spec.confirm_msg || '@i18n:objects.stageuser.stage_one_confirm'; + spec.label = spec.label || '@i18n:buttons.stage'; + + var that = IPA.object_action(spec); + + that.on_success = function(facet, data, text_status, xhr) { + + IPA.notify_success(data.result.summary); + facet.on_update.notify(); + facet.redirect(); + }; + + return that; +}; + /** * Stage user entity specification object * @member stageuser @@ -431,6 +454,7 @@ stageuser.register = function() { a.register('batch_undel', stageuser.batch_undel_action); a.register('activate', stageuser.activate_action); a.register('batch_stage', stageuser.batch_stage_action); + a.register('stage', stageuser.stage_action); e.register({type: 'stageuser', spec: stageuser.stageuser_spec}); f.register_from_spec('user_search_preserved', stageuser.search_preserved_facet_spec); }; diff --git a/install/ui/src/freeipa/user.js b/install/ui/src/freeipa/user.js index 22dfb6fcf..49c7ff4d4 100644 --- a/install/ui/src/freeipa/user.js +++ b/install/ui/src/freeipa/user.js @@ -67,6 +67,12 @@ return { source_facet: 'details', dest_entity: 'user', dest_facet: 'search_preserved' + }, + { + $factory: IPA.facet_update_policy, + source_facet: 'details', + dest_entity: 'stageuser', + dest_facet: 'search' } ], facets: [ @@ -343,6 +349,10 @@ return { $type: 'delete', show_cond: ['preserved-user'] }, + { + $type: 'stage', + show_cond: ['preserved-user'] + }, { $type: 'reset_password', hide_cond: ['preserved-user'] @@ -368,9 +378,9 @@ return { } ], header_actions: [ - 'reset_password', 'enable', 'disable','delete_active_user', - 'delete', 'unlock', 'add_otptoken', 'automember_rebuild', - 'request_cert' + 'reset_password', 'enable', 'disable', 'stage', + 'delete_active_user', 'delete', 'unlock', 'add_otptoken', + 'automember_rebuild', 'request_cert' ], state: { evaluators: [ diff --git a/install/ui/test/data/ipa_init.json b/install/ui/test/data/ipa_init.json index da401d415..a8ec850a8 100644 --- a/install/ui/test/data/ipa_init.json +++ b/install/ui/test/data/ipa_init.json @@ -548,6 +548,7 @@ "preserved_label": "Preserved users", "stage_confirm": "Are you sure you want to stage selected users?", "stage_success": "${count} users(s) staged", + "stage_one_confirm": "Are you sure you want to stage ${object}?", "undel_confirm": "Are you sure you want to restore selected users?", "undel_success": "${count} user(s) restored", "user_categories": "User categories", diff --git a/ipaserver/plugins/internal.py b/ipaserver/plugins/internal.py index 91fdd4080..bfcee1a6e 100644 --- a/ipaserver/plugins/internal.py +++ b/ipaserver/plugins/internal.py @@ -687,6 +687,7 @@ class i18n_messages(Command): "preserved_label": _("Preserved users"), "stage_confirm": _("Are you sure you want to stage selected users?"), "stage_success": _("${count} users(s) staged"), + "stage_one_confirm": _("Are you sure you want to stage ${object}?"), "undel_confirm": _("Are you sure you want to restore selected users?"), "undel_success": _("${count} user(s) restored"), "user_categories": _("User categories"),