From 1efc9b3de4c44a5d8ba19a06b244998c202bfbee Mon Sep 17 00:00:00 2001
From: Marco Malavolti <marco.malavolti@garr.it>
Date: Fri, 12 Jul 2024 18:17:39 +0200
Subject: [PATCH] Added header.php & footer.php

---
 Dockerfile            |  15 ++++--
 docker-compose.yml    |   6 +--
 eccs.ini              |   7 +--
 supervisord.conf      |   6 +--
 web/edugain_logo1.png | Bin 0 -> 5787 bytes
 web/eu_logo.png       | Bin 0 -> 6212 bytes
 web/footer.php        | 104 ++++++++++++++++++++++++++++++++++++++++++
 web/geant_logo1.png   | Bin 0 -> 6747 bytes
 web/header.php        |  76 ++++++++++++++++++++++++++++++
 web/home_logo.png     | Bin 0 -> 499 bytes
 web/index.php         |   5 +-
 web/menu.js           |  81 ++++++++++++++++++++++++++++++++
 12 files changed, 285 insertions(+), 15 deletions(-)
 create mode 100644 web/edugain_logo1.png
 create mode 100644 web/eu_logo.png
 create mode 100644 web/footer.php
 create mode 100644 web/geant_logo1.png
 create mode 100644 web/header.php
 create mode 100644 web/home_logo.png
 create mode 100644 web/menu.js

diff --git a/Dockerfile b/Dockerfile
index d7588cf..a79481d 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -7,8 +7,12 @@ ARG PYFF_VERSION
 
 #COPY --from=hairyhenderson/gomplate:v3.11.5 /gomplate /bin/gomplate
 
+ARG UID=1000
+ARG GID=1000
+
 USER root
-RUN useradd -rms /bin/bash eccs
+RUN groupadd -g $GID -o eccs
+RUN useradd -u $UID -g $GID -rms /bin/bash eccs
 
 RUN apt-get update \
     && apt-get install -y apt-utils net-tools vim cron wget gpg gpg-agent unzip ca-certificates \
@@ -18,9 +22,9 @@ RUN apt-get update \
     python3-requests python3-selenium python3-urllib3 --no-install-recommends \
     && sed -i -e 's/"syntax on/syntax on/g' /etc/vim/vimrc
 
+# Install PyFF
 RUN python3 -m pip install pyff==${PYFF_VERSION} --break-system-packages
 
-# Install PyFF
 #RUN python3 -m pip install pyff==${PYFF_VERSION} --break-system-packages \
 #    && sed 's/random.seed(self)/random.seed(id(self))/' -i $(find /usr -name repo.py) # Until the commit https://github.com/IdentityPython/pyFF/commit/601f796776a1948bf09278e6f7ad4c1266904992 will not be implemented into a new PyFF release
 
@@ -30,14 +34,13 @@ RUN wget "https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stabl
     && apt install -y ./google-chrome-stable_current_amd64.deb --no-install-recommends \
     && rm google-chrome-stable_current_amd64.deb
 
-USER eccs
+USER eccs:eccs
 
 # Get ECCS
 WORKDIR /home/eccs
 
 # Google Chrome Driver
 RUN wget "https://storage.googleapis.com/chrome-for-testing-public/${CHROMEDRIVER_VERSION}/linux64/chromedriver-linux64.zip" -O chromedriver_linux64.zip \
-
     && unzip chromedriver_linux64.zip \
     && rm chromedriver_linux64.zip \
     && mv chromedriver-linux64/chromedriver . \
@@ -48,8 +51,10 @@ COPY --chown=eccs:eccs pyff-config/ pyff-config/
 COPY --chown=eccs:eccs api.py clean7daysOldFiles.sh cleanAndRunEccs.sh eccs.ini eccs.py eccs_properties.py eccs-wsgi.py get-sps-metadata.sh retryFailedChecks.py runEccs.py utils.py .
 COPY --chown=eccs:eccs  input/ input/
 COPY --chown=eccs:eccs  web/ web/
+RUN mkdir -m 755 output html logs selenium-logs \
+    && chown -R eccs:eccs output html logs selenium-logs
 
-USER root
+USER root:root
 
 COPY eccs-logrotate.conf /etc/logrotate.d/eccs
 COPY eccs_cron /etc/cron.d/eccs
diff --git a/docker-compose.yml b/docker-compose.yml
index 6554c80..6388fe7 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -5,9 +5,9 @@ services:
       context: .
       dockerfile: Dockerfile
       args:
-        CHROME_VERSION: "126.0.6478.126-1"
-        CHROMEDRIVER_VERSION: "126.0.6478.126"
-        PYFF_VERSION: "2.1.2"
+        CHROME_VERSION: 126.0.6478.126-1
+        CHROMEDRIVER_VERSION: 126.0.6478.126
+        PYFF_VERSION: 2.1.2
     container_name: eccs
     hostname: eccs
     ports:
diff --git a/eccs.ini b/eccs.ini
index 7c1b3c3..2a55c66 100644
--- a/eccs.ini
+++ b/eccs.ini
@@ -20,7 +20,7 @@ die-on-term    = true
 listen         = 128
 
 wsgi-file      = eccs-wsgi.py
-plugins        = python3
+plugins        = python3,logfile
 enable-threads = true
 
 logto          = logs/%(project)-uwsgi.log
@@ -38,5 +38,6 @@ harakiri       = 20
 
 pidfile        = %(project).pid
 touch-reload   = %(project).ini
-#stats         = 127.0.0.1:9193
-#stats-http    = True
+
+# Keep logs cleaned and prevent filling disk
+log-reopen     = true
diff --git a/supervisord.conf b/supervisord.conf
index c14b159..7c160b8 100644
--- a/supervisord.conf
+++ b/supervisord.conf
@@ -27,11 +27,11 @@ autostart=true
 autorestart=true
 
 [program:uwsgi]
-#command=uwsgi --ini /root/eccs/eccs.ini --die-on-term
 command=uwsgi --ini /home/eccs/eccs.ini
-stdout_logfile=/home/eccs/logs/eccs-uwsgi.log
+user=eccs
+stdout_logfile=/home/eccs/logs/eccs-uwsgi-supervisor.log
 stdout_logfile_maxbytes=0
-stderr_logfile=/home/eccs/logs/eccs-uwsgi.log
+stderr_logfile=/home/eccs/logs/eccs-uwsgi-supervisor.log
 stderr_logfile_maxbytes=0
 autostart=true
 autorestart=true
diff --git a/web/edugain_logo1.png b/web/edugain_logo1.png
new file mode 100644
index 0000000000000000000000000000000000000000..515274148cbdb8867283c1a87b624e49c661d134
GIT binary patch
literal 5787
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
AR{#J2

literal 0
HcmV?d00001

diff --git a/web/eu_logo.png b/web/eu_logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..fddda1f7ed05106bc80ad123d523300e5176d12b
GIT binary patch
literal 6212
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
E09eWM761SM

literal 0
HcmV?d00001

diff --git a/web/footer.php b/web/footer.php
new file mode 100644
index 0000000..b773623
--- /dev/null
+++ b/web/footer.php
@@ -0,0 +1,104 @@
+<?php
+?>
+  </div>
+
+
+
+
+</div>
+</div>
+
+
+<footer style="visibility: hidden;">
+    <div class="central-section">
+      <div class="col-1-1" style="padding:15px; display:inline-block">
+	      <img src="eu_logo.png"/>
+      </div>
+
+      <div class="col-1-2" style="color:white">
+          	      <a href="https://edugain.org/privacy/" target="_blank">Privacy Notice</a>
+	      <a href="https://edugain.org/disclaimer/" target="_blank">Disclaimer</a>
+        <a href="https://www.geant.org/Policies" target="_blank">Policies</a>
+      </div>
+    </div>
+  </footer>
+
+
+
+
+  <script>
+  var Help = new Array();
+Help['Entities in eduGAIN'] = 'You may notice that the sum of all IdPs, SPs and AAs is to more then the number of all entities. The reason for this is that a few entites are listed in two roles - IdP and SP therefore they are counted twice when you add IdPs to SPs.';
+Help['Federations in eduGAIN'] = 'Federations which have passed the acceptance process but have not yet stated providing their own metadata are shown in the Voting-only group.';
+Help['Entity category filter'] = 'Entity categories allow grouping entities sharing common criteria, some of them like <strong>GÉANT Data Protection Code of Conduct</strong> have particular use for eduGAIN as their usage is meant to help in defining attribute release policies. This filter allows you to find out how the entity catiegories concept is spread within eduGAIN. More on this topic at <a href="https://refeds.org/display/ENT/Entity-Categories+Home\"><strong>REFEDS WIKI</strong></a>.';
+Help['SAML 2.0 support'] = 'This filter allows you to find out which entities do and which do not declare SAML 2.0 support';
+Help['ECCS IdP test status'] = 'eduGAIN Connectivity Check Service - ECCS is to identify eduGAIN Identity Providers (IdP) that are not properly configured.  With this filter you can quickly find out how the IdPs respond to these tests. More info in <a href="https://wiki.edugain.org/EduGAIN_Connectivity_Check" target="_blank"><strong>eduGAIN WIKI</strong></a>';
+Help['Entity clashes'] = 'Show clash information. If one entityID is supplied by more then one federation, display information in which federations it was found. <br />When the display is limited to a subset of federations, having this option set will also display entities which were exported within the selected federations but were overriden by the clash resolution. <br />CLASHes shown in Yelow make it to eduGAIN but block others, the ones show in Red are the blocked ones.<br />Click on the CLASH link to see the list of conflicts.';
+Help['Validator warnings'] = 'Select based on existance of validator warnings; click on Entity details to see the warnings.';
+Help['CoCo status'] = 'Filter on Code of Conduct monitoring status of Service providers.';
+Help['Download CSV'] = 'Rather then displaying the results as a table, download the results as tab separated text file. This file can be imported into a spreadsheet (LibreOffice works particularly nice)';
+Help['SIRTFI errors'] = "<p>Show entities declararing <a href='https://wiki.refeds.org/display/GROUPS/SIRTFI' target='_blank'>REFEDS SIRTFI</a> support but violating the specification";
+Help['Appeared in eduGAIN'] = 'Only show enetities which appered in eduGAIN in the selected time period.<p>The <i>first seen</i> dates are collected only since 2017-04-13.';
+
+function openHelp($helpTrigger){
+	var helpId = $helpTrigger.attr('data-help_id');
+	$help = $('#help_dialog');
+	$help.html('<p>' + Help[helpId] + '</p>');
+	$help.dialog('option', 'title', helpId);
+	$help.dialog('option', { position: { my: "left top", at: "right bottom", of: $helpTrigger } });
+	$help.dialog('open');
+}
+
+$(function(){
+	var $footer = $('footer');
+
+	var $body = $("body");
+	$body.css('margin-top', 0);
+	$body.css('margin-bottom', 0);
+
+	// function to set the height on fly
+  function autoHeight() {
+    // $('#wrap').css('min-height', 0);
+    $('#wrap').css('min-height', (
+      $(document).outerHeight()
+      - $('header').outerHeight()
+      + $('#wrap').height()
+      - $('#wrap').outerHeight()
+      - $footer.height()
+    ));
+  }
+
+  // onDocumentReady function bind
+  $(document).ready(function() {
+    autoHeight();
+
+		$("button").mouseout(function(){
+			this.blur();
+		})
+  });
+
+  // onResize bind of the function
+  $(window).resize(function() {
+    autoHeight();
+  });
+
+
+	$footer.css('visibility', 'visible');
+
+	$('#help_dialog').dialog({
+		autoOpen: false
+	});
+
+	$('.help').click(function(e){
+		e.preventDefault();
+		var $helpTrigger = $(this);
+		openHelp($helpTrigger);
+	});
+
+
+});
+  </script>
+  <script src="menu.js"></script>
+
+<div id="html_templates">
+</div>
diff --git a/web/geant_logo1.png b/web/geant_logo1.png
new file mode 100644
index 0000000000000000000000000000000000000000..588e8f5fedd3744739ed8545da106482b553cbb7
GIT binary patch
literal 6747
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

literal 0
HcmV?d00001

diff --git a/web/header.php b/web/header.php
new file mode 100644
index 0000000..7041282
--- /dev/null
+++ b/web/header.php
@@ -0,0 +1,76 @@
+<?php
+?>
+<div id="inner" style="position: relative;">
+  <div id="help_dialog"></div>
+
+  <header>
+       <div style="position: relative; height: 115px; width: 100%; background: #003f5f">
+     <img id="geant_logo_t" src="geant_logo1.png" style="position: absolute; left: 20px; bottom: 0px;">
+     <img src="edugain_logo1.png" style="position:absolute; right: 40px; bottom: 0px;">
+     </div>
+    </header>
+
+
+  <div id="wrap">
+  <nav class="main-nav">
+      <div class="central-section">
+      <div id="nav_icon" class="nav-icon"><a id="nav_icon_toggle" href="javascript:void(0);"><img src="images/menu-icon.gif" /></a></div>
+        <div id="core_nav_section" class="et-menu-holder">
+	<ul id="core_nav" class="et-menu et-left">
+		<li class="et-first-option no-children"><a href="https://technical.edugain.org" title="Home"><img style="width: 16px; height: 15px; position: relative; top: 3px" src="home_logo.png" alt="Home icon" /></a></li>
+		<li class="et-option et-has-children"><span>Members</span>
+			<ul class="et-submenu">
+				<li class="et-submenu-option"><a href="https://technical.edugain.org/status">Member Federations</a></li>
+				<li class="et-submenu-option"><a href="https://technical.edugain.org/whatsnew">Recent Changes</a></li>
+				<li class="et-submenu-option"><a href="https://technical.edugain.org/governance">Assembly</a></li>
+			</ul>
+		</li>
+		<li class="et-option et-has-children"><span>Joining</span>
+			<ul class="et-submenu">
+				<li class="et-submenu-option"><a href="https://technical.edugain.org/joining_checklist">As Federation</a></li>
+				<li class="et-submenu-option"><a href="https://wiki.geant.org/display/eduGAIN/How+to+Join+eduGAIN+as+Service+Provider">As Service Provider</a></li>
+				<li class="et-submenu-option"><a href="https://wiki.geant.org/display/eduGAIN/How+to+set+up+an+Identity+Provider+for+eduGAIN">As Identity Provider</a></li>
+				<li class="et-submenu-option"><a href="https://technical.edugain.org/metadata">eduGAIN metadata</a></li>
+			</ul>
+		</li>
+		<li class="et-option et-has-children"><span>Tools</span>
+			<ul class="et-submenu">
+				<li class="et-submenu-option"><a href="https://technical.edugain.org/validator" target="_blank">Metadata Validator</a></li>
+				<li class="et-submenu-option"><a href="https://technical.edugain.org/entities">Entities Database</a></li>
+				<li class="et-submenu-option"><a href="https://technical.edugain.org/isFederatedCheck" target="_blank">isFederated Check</a></li>
+				<li class="et-submenu-option"><a href="https://technical.edugain.org/eccs" target="_blank">Connectivity Check</a></li>
+                                <li class="et-submenu-option"><a href="https://release-check.edugain.org/" target="_blank">Release Check</a></li>
+                                <li class="et-submenu-option"><a href="https://access-check.edugain.org/" target="_blank">Access Check</a></li>
+                                <li class="et-submenu-option"><a href="https://monitor.edugain.org/coco/" target="_blank">CoCo Check</a></li>
+                                <li class="et-submenu-option"><a href="https://technical.edugain.org/api">Access API</a></li>
+				<li class="et-submenu-option"><a href="https://technical.edugain.org/monitoring">Monitoring</a></li>
+				<li class="et-submenu-option"><a href="https://technical.edugain.org/compliance_audit">Profile compliance audit</a></li>
+				<li class="et-submenu-option"><a href="https://technical.edugain.org/link_tests">Members URL testing</a></li>
+			</ul>
+		</li>
+		<li class="et-option no-children"><a href="https://technical.edugain.org/documents">Policy framework</a></li>
+		<li class="et-option et-has-children"><span>Operations</span>
+			<ul class="et-submenu">
+                                <li class="et-submenu-option"><a href="https://technical.edugain.org/issues">Current issues</a></li>
+                                <li class="et-submenu-option"><a href="https://technical.edugain.org/operations">Operational documentation</a></li>
+				<li class="et-submenu-option"><a href="https://technical.edugain.org/metadata">eduGAIN metadata</a></li>
+				<li class="et-submenu-option"><a href="https://wiki.geant.org/display/eduGAIN/eduGAIN+Services+Status">System status</a></li>
+                        </ul>
+		<li class="et-option no-children"><a href="https://technical.edugain.org/contact">Support</a></li>
+	</ul>
+</div>
+<div id="help_nav_section" class="et-menu-holder">
+	<ul class="et-menu et-right">
+		<li class="et-option no-children"><a href="https://wiki.edugain.org/">Wiki</a></li>
+		<li class="et-option no-children"><a href="https://edugain.org">Main webpage</a></li>
+	</ul>
+</div>
+    </div>
+    </nav>
+  <div id="breadcrumb" class="central-section">
+    Tools &gt; eduGAIN Connectivity Check Service
+  </div>
+
+
+  <div id="main_body">
+  <div class="eccs-central">
diff --git a/web/home_logo.png b/web/home_logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..ac3a19490ad6310ff6b2c9424c4d6a392cd9e16e
GIT binary patch
literal 499
zcmeAS@N?(olHy`uVBq!ia0y~yU}#`qV5sC^V_;zTxL8w)fq{W7$=lt9;Xep2*t>i(
z0|NtRfk$L90|U1(2s1Lwnj^u$z`$PO>Fdh=kb{{^g>&1gs2T<a#s*Ip$B>F!Z|`jE
zJruy;;wUyTSfDkKxiwHg)S*kyUh(JI(=wmRQ@9fgtvn}PdHr?A-uV98yKC6A`~TP0
z?zLxkDEP7es=}Ecxh%$Y(g%C)yBR#*E{M+kkjp`~EXd><=|eb7CM;VgeURsV8#Y&g
z^nztUZdQc2dG}`JjOSA~G}o>#XBS{#a$w+KU{qjWX<z_zUhF=7(e6V1|K;Z{)_o{q
s|G)tjMNvW|$77O;=Oh)+U!n4=l;7-|mHA7Hfq{X+)78&qol`;+0IssQ82|tP

literal 0
HcmV?d00001

diff --git a/web/index.php b/web/index.php
index 0bd9529..680f22d 100644
--- a/web/index.php
+++ b/web/index.php
@@ -56,7 +56,9 @@ $data['check_result'] = htmlspecialchars($_GET["check_result"]);
   </head>
   <body>
     <div class="eccs-central">
-
+       <!-- eduGAIN Header START -->
+       <?php include('header.php'); ?>
+       <!-- eduGAIN Header END -->
        <h1><a href="/eccs" target="_self">eduGAIN Connectivity Check Service</a> (<a href="https://wiki.geant.org/display/eduGAIN/eduGAIN+Connectivity+Check">Instructions</a>, <a href="mailto:support@edugain.org">Contacts</a>)</h1>
        <p>The purpose of the eduGAIN Connectivity Check is to identify eduGAIN Identity Providers (IdP) that does not properly consume eduGAIN SAML2 SP metadata.</p>
        <div id="status">
@@ -108,5 +110,6 @@ $data['check_result'] = htmlspecialchars($_GET["check_result"]);
        </script>
        <script type="text/javascript" src="eccs.js" /></script>
     </div> <!-- END eccs-central -->
+    <?php include('footer.php'); ?>
   </body>
 </html>
diff --git a/web/menu.js b/web/menu.js
new file mode 100644
index 0000000..9e377bb
--- /dev/null
+++ b/web/menu.js
@@ -0,0 +1,81 @@
+var $_expandedItems, $_allMenuItems, $_navIcon;
+var _expandedClass = "et-expanded";
+var _menuPauseTime = 1000;
+var _menuTimeout;
+
+function toggleWholeMenu(){
+	var $expandedItems = getExpandedItems();
+	if($expandedItems) {
+		collapseMenu($expandedItems);
+	} else {
+		expandMenu($_allMenuItems);
+	}
+}
+
+function expandMenu($elements) {
+	$elements.addClass(_expandedClass);
+	$_expandedItems = $elements;
+}
+
+function collapseMenu($expandedItems) {
+	$expandedItems.removeClass(_expandedClass);
+}
+
+function isWide() {
+	return $_navIcon.is(':hidden');
+}
+
+function getExpandedItems() {
+	var $expandedItems = $("." + _expandedClass);
+	if($expandedItems.length == 0) {
+		$expandedItems = undefined;
+	}
+	return $expandedItems;
+}
+
+
+$(function(){
+	$_navIcon = $(".nav-icon");
+	$_allMenuItems = $(".et-first-option, .et-option, .et-last-option, .et-submenu");
+
+	$(window).resize(function() {
+		collapseMenu($_allMenuItems);
+	});
+
+	$(".et-has-children").mouseover(function(){
+		if(isWide()){
+			clearTimeout(_menuTimeout);
+			collapseMenu($_allMenuItems);
+			expandMenu($(this));
+		}
+	});
+
+	$(".et-has-children").mouseout(function(){
+		if(isWide()){
+				_menuTimeout = setTimeout(function(){
+					collapseMenu($_allMenuItems);
+				}, _menuPauseTime);
+		}
+	});
+
+	$(".et-submenu").mouseover(function(){
+		clearTimeout(_menuTimeout);
+	});
+
+	$(".et-submenu").mouseover(function(){
+		if(isWide()){
+			collapseMenu($_allMenuItems);
+		}
+	});
+
+	$(".no-children").mouseover(function(){
+		if(isWide()){
+			collapseMenu($_allMenuItems);
+		}
+	});
+
+	$($_navIcon).click(function(){
+		toggleWholeMenu();
+	});
+
+});
-- 
GitLab