diff --git a/filter_plugins/configuration_filters.py b/filter_plugins/configuration_filters.py index e78ac55b..d779c2e0 100644 --- a/filter_plugins/configuration_filters.py +++ b/filter_plugins/configuration_filters.py @@ -5,6 +5,13 @@ def get_oauth2_enabled(applications, application_id): enabled = app.get('oauth2_proxy', {}).get('enabled', False) return bool(enabled) +def get_oidc_enabled(applications, application_id): + # Retrieve the application dictionary based on the ID + app = applications.get(application_id, {}) + # Retrieve the value for oidc.enabled, default is False + enabled = app.get('oidc', {}).get('enabled', False) + return bool(enabled) + def get_css_enabled(applications, application_id): # Retrieve the application dictionary based on the given application_id. app = applications.get(application_id, {}) @@ -16,5 +23,6 @@ class FilterModule(object): def filters(self): return { 'get_css_enabled': get_css_enabled, + 'get_oidc_enabled': get_oidc_enabled, 'get_oauth2_enabled': get_oauth2_enabled } \ No newline at end of file diff --git a/roles/docker-keycloak/templates/import/realm.json.j2 b/roles/docker-keycloak/templates/import/realm.json.j2 index 2f09a6c6..8a8081bc 100644 --- a/roles/docker-keycloak/templates/import/realm.json.j2 +++ b/roles/docker-keycloak/templates/import/realm.json.j2 @@ -835,18 +835,17 @@ "secret": "{{oidc.client.secret}}", "redirectUris": [ {%- for application, domain in domains.items() -%} - {%- if applications[application_id] is defined and applications | get_oauth2_enabled(application_id) -%} + {%- if applications[application] is defined and ( applications | get_oauth2_enabled(application) or applications | get_oidc_enabled(application)) -%} {%- if domain is string -%} - "https://" {{ domain }} "/*", + "https://{{ domain }}/*"{% if not loop.last %},{% endif %} {%- else -%} {%- for d in domain -%} - "https://" {{ domain }} "/*", + "https://{{ d }}/*"{% if not (loop.last and loop.parent.last) %},{% endif %} {%- endfor -%} {%- endif -%} {%- endif -%} {%- endfor -%} ], - "webOrigins": [ "https://*.{{primary_domain}}" ], diff --git a/roles/nginx-modifier-css/templates/global.css.j2 b/roles/nginx-modifier-css/templates/global.css.j2 index 689ef41a..426361d6 100644 --- a/roles/nginx-modifier-css/templates/global.css.j2 +++ b/roles/nginx-modifier-css/templates/global.css.j2 @@ -162,110 +162,6 @@ HINT: --float-kit-arrow-fill-color: var(--secondary); /* already mapped above */ } - -/* Keycloak */ -:root{ - /* --- Palette Black (Graustufen) --- */ - --pf-v5-global--palette--black-100: var(--color-95); /* #fafafa */ - --pf-v5-global--palette--black-150: var(--color-90); /* #f5f5f5 */ - --pf-v5-global--palette--black-200: var(--color-85); /* #f0f0f0 */ - --pf-v5-global--palette--black-300: var(--color-75); /* #d2d2d2 */ - --pf-v5-global--palette--black-400: var(--color-65); /* #b8bbbe */ - --pf-v5-global--palette--black-500: var(--color-50); /* #8a8d90 */ - --pf-v5-global--palette--black-600: var(--color-40); /* #6a6e73 */ - --pf-v5-global--palette--black-700: var(--color-30); /* #4f5255 */ - --pf-v5-global--palette--black-800: var(--color-25); /* #3c3f42 */ - --pf-v5-global--palette--black-850: var(--color-20); /* #212427 */ - --pf-v5-global--palette--black-900: var(--color-10); /* #151515 */ - --pf-v5-global--palette--black-1000: var(--color-05); /* #030303 */ - - /* --- White --- */ - --pf-v5-global--palette--white: var(--color-99); - - /* --- Background Colors --- */ - --pf-v5-global--BackgroundColor--100: var(--color-99); - --pf-v5-global--BackgroundColor--150: var(--color-95); - --pf-v5-global--BackgroundColor--200: var(--color-85); - --pf-v5-global--BackgroundColor--300: var(--color-75); - --pf-v5-global--BackgroundColor--400: var(--color-65); - --pf-v5-global--BackgroundColor--light-100: var(--color-99); - --pf-v5-global--BackgroundColor--light-200: var(--color-95); - --pf-v5-global--BackgroundColor--light-300: var(--color-85); - --pf-v5-global--BackgroundColor--dark-100: var(--color-10); - --pf-v5-global--BackgroundColor--dark-200: var(--color-25); - --pf-v5-global--BackgroundColor--dark-300: var(--color-20); - --pf-v5-global--BackgroundColor--dark-400: var(--color-30); - --pf-v5-global--BackgroundColor--dark-transparent-100: var(--color-05); - --pf-v5-global--BackgroundColor--dark-transparent-200: var(--color-05); - - /* --- Color Variables --- */ - --pf-v5-global--Color--100: var(--color-10); - --pf-v5-global--Color--200: var(--color-40); - --pf-v5-global--Color--300: var(--color-25); - --pf-v5-global--Color--400: var(--color-50); - --pf-v5-global--Color--light-100: var(--color-99); - --pf-v5-global--Color--light-200: var(--color-85); - --pf-v5-global--Color--light-300: var(--color-75); - --pf-v5-global--Color--dark-100: var(--color-10); - --pf-v5-global--Color--dark-200: var(--color-40); - - /* --- Active Colors --- */ - --pf-v5-global--active-color--100: var(--color-65); - --pf-v5-global--active-color--200: var(--color-95); - --pf-v5-global--active-color--300: var(--color-75); - --pf-v5-global--active-color--400: var(--color-85); - - /* --- Disabled Colors --- */ - --pf-v5-global--disabled-color--100: var(--color-40); - --pf-v5-global--disabled-color--200: var(--color-75); - --pf-v5-global--disabled-color--300: var(--color-85); - - /* --- Primary Colors --- */ - --pf-v5-global--primary-color--100: var(--color-65); - --pf-v5-global--primary-color--200: var(--color-40); - --pf-v5-global--primary-color--light-100: var(--color-75); - --pf-v5-global--primary-color--dark-100: var(--color-65); - - /* --- Secondary Colors --- */ - --pf-v5-global--secondary-color--100: var(--color-40); - - /* --- Custom Colors --- */ - --pf-v5-global--custom-color--100: var(--color-65); - --pf-v5-global--custom-color--200: var(--color-65); - --pf-v5-global--custom-color--300: var(--color-30); - - /* --- Link Colors --- */ - --pf-v5-global--link--Color: var(--color-65); - --pf-v5-global--link--Color--hover: var(--color-40); - --pf-v5-global--link--Color--light: var(--color-75); - --pf-v5-global--link--Color--light--hover: var(--color-85); - --pf-v5-global--link--Color--dark: var(--color-65); - --pf-v5-global--link--Color--dark--hover: var(--color-40); - --pf-v5-global--link--Color--visited: var(--color-40); - - /* --- Border Colors --- */ - --pf-v5-global--BorderColor--100: var(--color-75); - --pf-v5-global--BorderColor--200: var(--color-50); - --pf-v5-global--BorderColor--300: var(--color-85); - --pf-v5-global--BorderColor--400: var(--color-65); - --pf-v5-global--BorderColor--dark-100: var(--color-75); - --pf-v5-global--BorderColor--light-100: var(--color-65); - - /* --- Icon Colors --- */ - --pf-v5-global--icon--Color--light: var(--color-40); - --pf-v5-global--icon--Color--dark: var(--color-10); - --pf-v5-global--icon--Color--light--light: var(--color-85); - --pf-v5-global--icon--Color--dark--light: var(--color-99); - --pf-v5-global--icon--Color--light--dark: var(--color-40); - --pf-v5-global--icon--Color--dark--dark: var(--color-10); - -} - -/* Additional Keykloak Configuration */ -a.pf-v5-c-nav__link{ - --pf-v5-c-nav__link--BackgroundColor: rgba(var(--color-rgb-56), 0.4); -} - /* gitea */ :root { /* Base and derived colors are now referenced from the computed scale */ @@ -417,6 +313,129 @@ a.pf-v5-c-nav__link{ --color-overlay-backdrop: var(--color-05); } +/* Keycloak */ +:root{ + /* --- Palette Black (Graustufen) --- */ + --pf-v5-global--palette--black-100: var(--color-95); /* #fafafa */ + --pf-v5-global--palette--black-150: var(--color-90); /* #f5f5f5 */ + --pf-v5-global--palette--black-200: var(--color-85); /* #f0f0f0 */ + --pf-v5-global--palette--black-300: var(--color-75); /* #d2d2d2 */ + --pf-v5-global--palette--black-400: var(--color-65); /* #b8bbbe */ + --pf-v5-global--palette--black-500: var(--color-50); /* #8a8d90 */ + --pf-v5-global--palette--black-600: var(--color-40); /* #6a6e73 */ + --pf-v5-global--palette--black-700: var(--color-30); /* #4f5255 */ + --pf-v5-global--palette--black-800: var(--color-25); /* #3c3f42 */ + --pf-v5-global--palette--black-850: var(--color-20); /* #212427 */ + --pf-v5-global--palette--black-900: var(--color-10); /* #151515 */ + --pf-v5-global--palette--black-1000: var(--color-05); /* #030303 */ + + /* --- White --- */ + --pf-v5-global--palette--white: var(--color-99); + + /* --- Background Colors --- */ + --pf-v5-global--BackgroundColor--100: var(--color-99); + --pf-v5-global--BackgroundColor--150: var(--color-95); + --pf-v5-global--BackgroundColor--200: var(--color-85); + --pf-v5-global--BackgroundColor--300: var(--color-75); + --pf-v5-global--BackgroundColor--400: var(--color-65); + --pf-v5-global--BackgroundColor--light-100: var(--color-99); + --pf-v5-global--BackgroundColor--light-200: var(--color-95); + --pf-v5-global--BackgroundColor--light-300: var(--color-85); + --pf-v5-global--BackgroundColor--dark-100: var(--color-10); + --pf-v5-global--BackgroundColor--dark-200: var(--color-25); + --pf-v5-global--BackgroundColor--dark-300: var(--color-20); + --pf-v5-global--BackgroundColor--dark-400: var(--color-30); + --pf-v5-global--BackgroundColor--dark-transparent-100: var(--color-05); + --pf-v5-global--BackgroundColor--dark-transparent-200: var(--color-05); + + /* --- Color Variables --- */ + --pf-v5-global--Color--100: var(--color-10); + --pf-v5-global--Color--200: var(--color-40); + --pf-v5-global--Color--300: var(--color-25); + --pf-v5-global--Color--400: var(--color-50); + --pf-v5-global--Color--light-100: var(--color-99); + --pf-v5-global--Color--light-200: var(--color-85); + --pf-v5-global--Color--light-300: var(--color-75); + --pf-v5-global--Color--dark-100: var(--color-10); + --pf-v5-global--Color--dark-200: var(--color-40); + + /* --- Active Colors --- */ + --pf-v5-global--active-color--100: var(--color-65); + --pf-v5-global--active-color--200: var(--color-95); + --pf-v5-global--active-color--300: var(--color-75); + --pf-v5-global--active-color--400: var(--color-85); + + /* --- Disabled Colors --- */ + --pf-v5-global--disabled-color--100: var(--color-40); + --pf-v5-global--disabled-color--200: var(--color-75); + --pf-v5-global--disabled-color--300: var(--color-85); + + /* --- Primary Colors --- */ + --pf-v5-global--primary-color--100: var(--color-65); + --pf-v5-global--primary-color--200: var(--color-40); + --pf-v5-global--primary-color--light-100: var(--color-75); + --pf-v5-global--primary-color--dark-100: var(--color-65); + + /* --- Secondary Colors --- */ + --pf-v5-global--secondary-color--100: var(--color-40); + + /* --- Custom Colors --- */ + --pf-v5-global--custom-color--100: var(--color-65); + --pf-v5-global--custom-color--200: var(--color-65); + --pf-v5-global--custom-color--300: var(--color-30); + + /* --- Link Colors --- */ + --pf-v5-global--link--Color: var(--color-65); + --pf-v5-global--link--Color--hover: var(--color-40); + --pf-v5-global--link--Color--light: var(--color-75); + --pf-v5-global--link--Color--light--hover: var(--color-85); + --pf-v5-global--link--Color--dark: var(--color-65); + --pf-v5-global--link--Color--dark--hover: var(--color-40); + --pf-v5-global--link--Color--visited: var(--color-40); + + /* --- Border Colors --- */ + --pf-v5-global--BorderColor--100: var(--color-75); + --pf-v5-global--BorderColor--200: var(--color-50); + --pf-v5-global--BorderColor--300: var(--color-85); + --pf-v5-global--BorderColor--400: var(--color-65); + --pf-v5-global--BorderColor--dark-100: var(--color-75); + --pf-v5-global--BorderColor--light-100: var(--color-65); + + /* --- Icon Colors --- */ + --pf-v5-global--icon--Color--light: var(--color-40); + --pf-v5-global--icon--Color--dark: var(--color-10); + --pf-v5-global--icon--Color--light--light: var(--color-85); + --pf-v5-global--icon--Color--dark--light: var(--color-99); + --pf-v5-global--icon--Color--light--dark: var(--color-40); + --pf-v5-global--icon--Color--dark--dark: var(--color-10); + +} + +/* Additional Keykloak Configuration */ +a.pf-v5-c-nav__link{ + --pf-v5-c-nav__link--BackgroundColor: rgba(var(--color-rgb-56), 0.4); +} + +/* LAM */ +:root { +--lam-background-color-default: var(--color-99); {# from #FFFFFF (very bright white) #} +--lam-input-bg-color: var(--color-98); {# from #fcfcfc (almost white) #} +--lam-text-color-default: var(--color-01); {# from #000000 (pure black) #} +--lam-border-color: var(--color-90); {# from #e8e8e8 (light grey) #} +--lam-border-color-primary: var(--color-15); {# from #01689e (dark blue) #} +--lam-border-color-secondary: var(--color-85); {# from #ffcb1d (bright yellow) #} +--lam-background-color-primary: var(--color-50); {# from #3daee9 (mid-tone blue) #} +--lam-background-color-secondary: var(--color-90); {# from #ffe233 (bright yellow) #} +--lam-text-color-primary: var(--color-99); {# from #ffffff (pure white) #} +--lam-text-color-secondary: var(--color-01); {# from #000000 (pure black) #} +--lam-text-color-ok: var(--color-10); {# from #237d0c (dark green) #} +--lam-table-background-color-bright: var(--color-98); {# from #fbfbfb (very light grey) #} +--lam-table-background-color-dark: var(--color-92); {# from #e8f3ff (light blue) #} +--lam-table-background-color-hover: var(--color-50); {# from #3daee9 (mid-tone blue) #} +--lam-table-text-color-hover: var(--color-99); {# from #ffffff (pure white) #} +--lam-table-border-color: var(--color-50); {# from #3daee9 (mid-tone blue) #} +} + /** Mastodon Overrides **/ div#mastodon, div#admin-wrapper { /* Dropdown */ @@ -522,11 +541,31 @@ body, html[native-dark-active] { font-family: "Liberation Sans", Arial, sans-serif; } -/* Links (Color Only) */ +{# All links (applies to all anchor elements regardless of state) #} a { color: var(--color-50); } +{# Unvisited links (applies only to links that have not been visited) #} +a:link { + color: var(--color-55); +} + +{# Visited links (applies only to links that have been visited) #} +a:visited { + color: var(--color-45); +} + +{# Hover state (applies when the mouse pointer is over the link) #} +a:hover { + color: var(--color-60); +} + +{# Active state (applies during the time the link is being activated, e.g., on click) #} +a:active { + color: var(--color-65); +} + /* Buttons (Background, Text, Border, and Shadow) Now using a button background that is only slightly darker than the overall background */ html[native-dark-active] button, html[native-dark-active] .btn, button, .btn { @@ -621,6 +660,11 @@ div#app header, div#app header *{ border-color: transparent !important; } +/* Not changable due to inline css */ +.roundedShadowBox { + color: #000000; +} + /** Mailu **/ [class*=sidebar-dark-], .bg-mailu-logo { background-color: var(--color-90) !important; @@ -709,3 +753,13 @@ div.master, div.kanban-header, div.kanban-table-inner, section.kanban button,a.d section.kanban h1, section.kanban h2{ color: var(--color-40) !important; } + +.home-project { + background: var(--color-88); + border-color: var(--color-60); + color: var(--color-12); +} + +.home-wrapper .title-bar { + background: var(--color-75); +} \ No newline at end of file diff --git a/roles/user/templates/bashrc.j2 b/roles/user/templates/bashrc.j2 index 2e3497d3..fd444b09 100644 --- a/roles/user/templates/bashrc.j2 +++ b/roles/user/templates/bashrc.j2 @@ -16,8 +16,12 @@ HOSTNAME_COLOR="\033[1;4;5;32m" clear +# Primary IP (determined via default route) +PRIMARY_IP=$(ip route get 8.8.8.8 2>/dev/null | awk '{print $7}' | head -n1) + # Print welcome message echo -e "${HEADER_COLOR}Welcome, $USER on ${HOSTNAME_COLOR}$HOSTNAME!${RESET_COLOR}" +echo -e "Primary IP Address: ${PRIMARY_IP}" echo -e "${HEADER_COLOR}Today is $(date +"%A, %d.%m.%Y %T")${RESET_COLOR}" echo -e "\033[94mPowered by: CyMaIS - Cyber Master Infrastructure Solutions!" echo -e "\033[1;31mWARNING: This software is not to be used for generating commercial profits.\033[94m"