[Kimchi-devel] [PATCH] [Wok] Bug fix #146: Do not display Wok tab for non-admin users
Lucio Correia
luciojhc at linux.vnet.ibm.com
Thu Oct 13 13:24:14 UTC 2016
Reviewed-By: Lucio Correia <luciojhc at linux.vnet.ibm.com>
On 11/10/2016 15:55, Aline Manera wrote:
> The Wok tab is restricted to admin users so do not load it for non-admin
> users. It implies in changing the way Wok loads the tabs as all the
> children tabs may be hidden for non-admin users and consequently the
> pattern tab should not be loaded as well.
>
> Signed-off-by: Aline Manera <alinefm at linux.vnet.ibm.com>
> ---
> src/wok/utils.py | 2 +-
> ui/js/src/wok.main.js | 31 +++++++++++--------------------
> 2 files changed, 12 insertions(+), 21 deletions(-)
>
> diff --git a/src/wok/utils.py b/src/wok/utils.py
> index 0b74fd8..52f6cea 100644
> --- a/src/wok/utils.py
> +++ b/src/wok/utils.py
> @@ -97,7 +97,7 @@ def get_enabled_plugins():
>
>
> def get_all_tabs():
> - files = []
> + files = [os.path.join(paths.ui_dir, 'config/tab-ext.xml')]
>
> for plugin, _ in get_enabled_plugins():
> files.append(os.path.join(PluginPaths(plugin).ui_dir,
> diff --git a/ui/js/src/wok.main.js b/ui/js/src/wok.main.js
> index eb7fd28..3872580 100644
> --- a/ui/js/src/wok.main.js
> +++ b/ui/js/src/wok.main.js
> @@ -33,6 +33,7 @@ wok.main = function() {
> wok.popable();
>
> var genTabs = function(tabs) {
> + var functionalTabs = [];
> var tabsHtml = [];
> $(tabs).each(function(i, tab) {
> tab_i18n = i18n[tab] ? i18n[tab] : tab;
> @@ -52,9 +53,16 @@ wok.main = function() {
> '<input name="helpPath" class="sr-only" value="' + helpPath + '" type="hidden"/>',
> '</li>'
> );
> +
> + if (functionalTabs.indexOf(functionality) == -1) {
> + functionalTabs.push(functionality)
> + }
> }
> });
> - return tabsHtml.join('');
> +
> + $('#functionalTabPanel ul').append(genFuncTabs(functionalTabs));
> + $('#tabPanel ul').append(tabsHtml.join(''));
> + return;
> };
>
> var genFuncTabs = function(tabs){
> @@ -73,7 +81,6 @@ wok.main = function() {
>
> var parseTabs = function(xmlData) {
> var tabs = [];
> - var functionalTabs = {};
> var functionality = $(xmlData).find('functionality').text();
> $(xmlData).find('tab').each(function() {
> var $tab = $(this);
> @@ -124,9 +131,7 @@ wok.main = function() {
> var pluginI18nUrl = 'plugins/{plugin}/i18n.json';
> var DEFAULT_HASH;
> var buildTabs = function(callback) {
> - var tabs = [];
> - var functionalTabs = [];
> - var wokTabs = retrieveTabs(wokConfigUrl);
> + var tabs = retrieveTabs(wokConfigUrl);
> wok.listPlugins(function(plugins) {
> $(plugins).each(function(i, p) {
> var url = wok.substitute(pluginConfigUrl, {
> @@ -140,23 +145,10 @@ wok.main = function() {
> }, i18nUrl, true);
> var pluginTabs = retrieveTabs(url);
> if(pluginTabs.length > 0){
> - var func = pluginTabs[0].functionality
> - if (functionalTabs.indexOf(func) == -1) {
> - functionalTabs.push(pluginTabs[0].functionality)
> - }
> tabs.push.apply(tabs, pluginTabs);
> }
> });
>
> - //ordering of first level tab
> - functionalTabs.sort();
> - if(wokTabs.length > 0){
> - //Adds wok to first index in list
> - functionalTabs.unshift(wokTabs[0].functionality);
> - //Adds Wok tabs to the list
> - tabs.unshift.apply(tabs, wokTabs);
> - }
> -
> //sort second level tab based on their ordering number
> var orderedTabs = tabs.slice(0);
> orderedTabs.sort(function(a, b) {
> @@ -174,8 +166,7 @@ wok.main = function() {
> defaultTabPath.substring(0, defaultTabPath.lastIndexOf('.'))
> }
>
> - $('#functionalTabPanel ul').append(genFuncTabs(functionalTabs));
> - $('#tabPanel ul').append(genTabs(orderedTabs));
> + genTabs(orderedTabs);
> wok.getHostname();
> wok.logos('ul#plugins',true);
> wok.logos('ul#wok-about',false);
>
--
Lucio Correia
Software Engineer
IBM LTC Brazil
More information about the Kimchi-devel
mailing list