diff --git a/docker/api/default.conf b/docker/api/default.conf index 70825a7..cbf84a8 100644 --- a/docker/api/default.conf +++ b/docker/api/default.conf @@ -20,6 +20,24 @@ server { access_log off; } + location /user_menu/json { + alias /api/api/static/templates/user_menu_header.json; + default_type application/json; + index user_menu_header.json; + expires max; + log_not_found off; + access_log off; + } + + location /user_menu/html { + alias /api/api/static/templates/user_menu_header.html; + default_type text/html; + index user_menu_header.html; + expires max; + log_not_found off; + access_log off; + } + location /json { alias /api/api/static/templates/header.json; default_type application/json; diff --git a/docker/api/src/api/lib/menu.py b/docker/api/src/api/lib/menu.py index 92d3819..93a3759 100644 --- a/docker/api/src/api/lib/menu.py +++ b/docker/api/src/api/lib/menu.py @@ -29,14 +29,28 @@ def write_css(): class Menu(): def __init__(self): + # self.user_menudict=self.gen_user_menu() + # pprint.pprint(self.user_menudict) + # self.write_user_menu() + self.menudict=self.gen_header() pprint.pprint(self.menudict) self.write_headers() write_css() + ''' HEADER & APP MENU ''' def gen_header(self): with open(r'menu/system.yaml') as yml: system=yaml.load(yml, Loader=yaml.FullLoader) + + user_menu = [] + for item in system['user_menu']: + item['href']='https://'+item['subdomain']+'.'+application.config['DOMAIN']+item['href'] + del item['subdomain'] + user_menu.append(item) + user_menu_dict={'user_menu':user_menu, + 'user_avatar':'https://sso.'+application.config['DOMAIN']+'/auth/realms/master/avatar-provider'} + apps_internal = [] for app in system['apps_internal']: app['href']='https://'+app['subdomain']+'.'+application.config['DOMAIN']+app['href'] @@ -48,16 +62,26 @@ class Menu(): custom['background_login']='https://api.'+application.config['DOMAIN']+custom['background_login'] custom['logo']='https://api.'+application.config['DOMAIN']+custom['logo'] - menudict={**custom,**{'apps_internal':apps_internal}} + menudict={**custom,**{'apps_internal':apps_internal,**user_menu_dict}} menudict['user']={} menudict['user']['account']='https://sso.'+application.config['DOMAIN']+system['user']['account'] menudict['user']['avatar']='https://sso.'+application.config['DOMAIN']+system['user']['avatar'] - menudict['user']['password']='https://sso.'+application.config['DOMAIN']+system['user']['password'] + # menudict['user']['password']='https://sso.'+application.config['DOMAIN']+system['user']['password'] return menudict def write_headers(self): env = Environment(loader=FileSystemLoader('api/static/_templates')) - template = env.get_template('apps.html') + + template = env.get_template('user_menu.html') + output_from_parsed_template = template.render(data=self.menudict) + print(output_from_parsed_template) + with open("api/static/templates/user_menu_header.html", "w") as fh: + fh.write(output_from_parsed_template) + + # with open("api/static/templates/user_menu_header.json", "w") as fh: + # fh.write(json.dumps(self.menudict)) + + template = env.get_template('apps_menu.html') output_from_parsed_template = template.render(data=self.menudict) print(output_from_parsed_template) with open("api/static/templates/header.html", "w") as fh: diff --git a/docker/api/src/api/static/_templates/apps.html b/docker/api/src/api/static/_templates/apps_menu.html similarity index 100% rename from docker/api/src/api/static/_templates/apps.html rename to docker/api/src/api/static/_templates/apps_menu.html diff --git a/docker/api/src/api/static/_templates/user_menu.html b/docker/api/src/api/static/_templates/user_menu.html new file mode 100644 index 0000000..00a0bd0 --- /dev/null +++ b/docker/api/src/api/static/_templates/user_menu.html @@ -0,0 +1,23 @@ + + + \ No newline at end of file diff --git a/docker/api/src/api/views/MenuViews.py b/docker/api/src/api/views/MenuViews.py index 40efc3c..e650241 100644 --- a/docker/api/src/api/views/MenuViews.py +++ b/docker/api/src/api/views/MenuViews.py @@ -25,4 +25,12 @@ def api_v2_header(format,application=False): if application == 'nextcloud': return render_template('header_nextcloud.html') if application == 'wordpress': - return render_template('header_wordpress.html') \ No newline at end of file + return render_template('header_wordpress.html') + +# @app.route('/user_menu/', methods=['GET']) +# @app.route('/user_menu//', methods=['GET']) +# def api_v2_user_menu(format,application=False): +# if application == False: +# if format == 'json': +# if application == False: +# return json.dumps(menu.get_user_nenu()), 200, {'Content-Type': 'application/json'} \ No newline at end of file