From 518ddc1f4b093ddd3e2736cd553c3457cac81587 Mon Sep 17 00:00:00 2001 From: haemmer Date: Fri, 19 Jul 2013 14:25:57 +0000 Subject: [PATCH] Lots of changes for #2789 --- README | 20 ++-- WAYF | 4 +- config.dist.php | 130 ++++++++++++++---------- default-body.php | 2 + default-embedded-wayf.php | 15 ++- default-header.php | 12 +-- functions.php | 24 +++-- images/federation-logo.png | Bin 0 -> 5608 bytes images/organization-logo.png | Bin 0 -> 6965 bytes images/small-federation-logo.png | Bin 0 -> 4600 bytes images/switch-aai-transparent-small.png | Bin 1573 -> 0 bytes images/switch-aai-transparent.png | Bin 3881 -> 0 bytes images/switch-logo.png | Bin 1751 -> 0 bytes images/switchaai-logo.png | Bin 3881 -> 0 bytes languages.php | 95 ++++++++++------- templates.php | 3 +- 16 files changed, 187 insertions(+), 118 deletions(-) create mode 100644 images/federation-logo.png create mode 100644 images/organization-logo.png create mode 100644 images/small-federation-logo.png delete mode 100644 images/switch-aai-transparent-small.png delete mode 100644 images/switch-aai-transparent.png delete mode 100644 images/switch-logo.png delete mode 100644 images/switchaai-logo.png diff --git a/README b/README index 3c08c97..7df063f 100755 --- a/README +++ b/README @@ -129,12 +129,20 @@ General Update Instructions: Specific Update Instructions: -Updates from versions before 1.17.2 - A new configuration option $supportContactEmail was introduced to provide - the user a support contact address in case of errors. Please add a line - like the following to the SWITCHwayf configuration file config.php: - $supportContactEmail = 'your-support-contact@your.organisation.org'; - If not set, the default address support-contact@example.org will be used. +Updates from versions before 1.18 + The following new configuration options were introduced: + + - $supportContactEmail + - $organizationLogoURL + - $organizationURL + - $faqURL + - $helpURL + - $privacyURL + + Have a look at config.dist.php in section 4. Appearance settings for a + description on these settings. The make sure to configure them to config.php + which should contain your own configuration. Otherwise, default values + will be set. Updates from versions before 1.15 diff --git a/WAYF b/WAYF index beb5de7..c7301a9 100755 --- a/WAYF +++ b/WAYF @@ -3,7 +3,7 @@ /* ****************************************************************************** SWITCHwayf -Version: 1.17.2 +Version: 1.18 Contact: aai@switch.ch Web site: http://www.switch.ch/aai/wayf ****************************************************************************** @@ -13,10 +13,10 @@ Web site: http://www.switch.ch/aai/wayf // Load general configuration and template file /*------------------------------------------------*/ -require_once('config.php'); require_once('templates.php'); require_once('functions.php'); require_once('languages.php'); +require_once('config.php'); // Set P3P headers just in case they were not set in Apache already header('P3P: CP="NOI CUR DEVa OUR IND COM NAV PRE"'); diff --git a/config.dist.php b/config.dist.php index 1ea76f9..bd3bbd8 100755 --- a/config.dist.php +++ b/config.dist.php @@ -1,34 +1,39 @@ or if the assertion consumer url // check below is enabled // Requires $useSAML2Metadata to be true - $enableDSReturnParamCheck = true; + //$enableDSReturnParamCheck = true; // If true, the return parameter is checked for Service Providers that // don't have and extension set. Instead of this @@ -88,14 +93,17 @@ $useSAML2Metadata = false; // a extension. It increases security for Service // Provider's that don't have an extensions. // Requires $useSAML2Metadata and $enableDSReturnParamCheck to be true - $useACURLsForReturnParamCheck = false; + //$useACURLsForReturnParamCheck = false; // Whether to turn on Kerberos support for Identity Provider preselection -$useKerberos = false; +//$useKerberos = false; + + // A Kerboros-protected page that redirects back to the WAYF script + //$kerberosRedirectURL = '/myFederation/kerberosRedirect.php'; // If enabled, the user's IP is used for a reverse DNS lookup whose resulting // domain name then is matched with the URN values of the Identity Providers -$useReverseDNSLookup = false; +//$useReverseDNSLookup = false; // Whether the JavaScript required for embedding the WAYF // on a remote site should be generated or not @@ -104,7 +112,7 @@ $useReverseDNSLookup = false; // (with some efforts) find out with a high probability from which // organization a user is from. This could be misused for phishing attacks. // Therefore, only enable this feature if you know what you are doing! -$useEmbeddedWAYF = false; +//$useEmbeddedWAYF = false; // If enabled the Embedded WAYF will prevent releasing information // about the user's preselected Identity Provider @@ -112,7 +120,7 @@ $useEmbeddedWAYF = false; // prevent preselecting the user's Identity Provider. Thus, users will have // to preselect their IdP each and every time // Requires $useEmbeddedWAYF to be true - $useEmbeddedWAYFPrivacyProtection = false; + //$useEmbeddedWAYFPrivacyProtection = false; // If enabled, the referer hostname of the request must match tan assertion // consumer URL or a discovery URL of a Service Provider in $metadataSPFile @@ -121,7 +129,7 @@ $useEmbeddedWAYF = false; // userfriendlyness. // Requires $useSAML2Metadata to be true and $useEmbeddedWAYFPrivacyProtection // to be false - $useEmbeddedWAYFRefererForPrivacyProtection = false; + //$useEmbeddedWAYFRefererForPrivacyProtection = false; // Whether or not to add the entityID of the preselected IdP to the // exported JSON/Text/PHP Code @@ -130,40 +138,56 @@ $useEmbeddedWAYF = false; // in the world can easily find out with a high probability from which // organization a user is from. This could be misused for phishing attacks. // Therefore, only enable this feature if you know what you are doing! -$exportPreselectedIdP = false; +//$exportPreselectedIdP = false; // Whether to enable logging of WAYF/DS requests // If turned on make sure to also configure $WAYFLogFile -$useLogging = true; +//$useLogging = true; + + // Where to log the access + // Make sure the web server user has write access to this file! + //$WAYFLogFile = '/var/log/apache2/wayf.log'; // 4. Appearance settings //************************** // Name of the federation -$federationName = 'SWITCHaai Federation'; +//$federationName = 'myFederation'; // URL to send user to when clicking on federation logo -$federationURL = 'http://www.switch.ch/aai/'; +// Insert %s as macro to be substituted by the language (e.g. 'en', 'de', 'fr', ...) the WAYF uses +//$federationURL = 'http://www.example.org/myFed/'; + +// Absolute URL to the federation logo that should be displayed in the Embedded WAYF +//$logoURL = 'http://ds.example.org/SWITCHwayf/images/federation-logo.png'; + +// Absolute URL to the small federation logo that should be displayed in the +// embedded WAYF if dimensions must be small +//$smallLogoURL = 'http://ds.example.org/SWITCHwayf/images/small-federation-logo.png'; // Support contact email address -$supportContactEmail = 'helpdesk@example.org'; +//$supportContactEmail = 'helpdesk@example.org'; -// Use an absolute URL in case you want to use the embedded WAYF -$imageURL = 'https://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).'/images'; +// Absolute URL to the logo of the organization operating this Discovery Service +//$organizationLogoURL = 'https://ds.example.org/SWITCHwayf/images/organization-logo.png'; -// Absolute URL to point to css directory -$cssURL = 'https://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).'/css'; +// Absolute URL to the organization's web page +// Insert %s as macro to be substituted by the language (e.g. 'en', 'de', 'fr', ...) the WAYF uses +//$organizationURL = 'http://www.example.org/'; -// Absolute URL to point to javascript directory -$javascriptURL = 'https://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).'/js'; +// Absolute URL to an FAQ page +// This entries local string is 'faq' in languages.php +// Insert %s as macro to be substituted by the language (e.g. 'en', 'de', 'fr', ...) the WAYF uses +//$faqURL = 'http://www.example.org/%s/myFed/faq/'; -// Absolute URL to the logo that should be displayed in the Embedded WAYF -$logoURL = $imageURL.'/switch-aai-transparent.png'; +// Absolute URL to a help/support page +// Insert %s as macro to be substituted by the language (e.g. 'en', 'de', 'fr', ...) the WAYF uses +//$helpURL = 'http://www.example.org/%s/myFed/help/'; -// Absolute URL to the small logo that should be displayed in the -// embedded WAYF if dimensions must be small -$smallLogoURL = $imageURL.'/switch-aai-transparent-small.png'; +// Absolute URL to a privacy policy page +// Insert %s as macro to be substituted by the language (e.g. 'en', 'de', 'fr', ...) the WAYF uses +//$privacyURL = 'http://www.example.org/%s/myFed/privacy/'; // 5. Files and path settings @@ -172,43 +196,43 @@ $smallLogoURL = $imageURL.'/switch-aai-transparent-small.png'; // Set both config files to the same value if you don't want to use the // the WAYF to read a (potential) automatically generated file that undergoes // some plausability checks before being used -$IDPConfigFile = 'IDProvider.conf.php'; -$backupIDPConfigFile = 'IDProvider.conf.php'; +//$IDPConfigFile = 'IDProvider.conf.php'; +//$backupIDPConfigFile = 'IDProvider.conf.php'; // Use $metadataFile as source federation's metadata. -$metadataFile = '/etc/shibboleth/metadata.switchaai.xml'; +//$metadataFile = '/etc/shibboleth/metadata.myFederation.xml'; // File to store the parsed IdP list // Will be updated automatically if the metadataFile modification time // is more recent than this file's // The user running the script must have permission to create $metadataIdpFile -$metadataIDPFile = 'IDProvider.metadata.php'; +//$metadataIDPFile = 'IDProvider.metadata.php'; // File to store the parsed SP list. // Will be updated automatically if the metadataFile modification time // is more recent than this file's // The user running the script must have permission to create $metadataIdpFile -$metadataSPFile = 'SProvider.metadata.php'; +//$metadataSPFile = 'SProvider.metadata.php'; // File to use as the lock file for writing the parsed IdP and SP lists. // The user running the script must have permission to write $metadataLockFile -$metadataLockFile = '/tmp/wayf_metadata.lock'; +//$metadataLockFile = '/tmp/wayf_metadata.lock'; -// Where to log the access -// Make sure the web server user has write access to this file! -$WAYFLogFile = '/var/log/apache2/wayf.log'; +// Use an absolute URL in case you want to use the embedded WAYF +//$imageURL = 'https://ds.example.org/SWITCHwayf/images'; +// Absolute URL to point to css directory +//$cssURL = 'https://ds.example.org/SWITCHwayf/css'; -// 6. Other settings -//****************** +// Absolute URL to point to javascript directory +//$javascriptURL = 'https://ds.example.org/SWITCHwayf/js'; -// A Kerboros-protected soft link back to this script! -$kerberosRedirectURL = '/SWITCHaai/kerberosRedirect.php'; // Development mode settings //************************** // If the development mode is activated, PHP errors and warnings will be displayed -$developmentMode = false; +// on pages the SWITCHwayf generates +//$developmentMode = false; ?> diff --git a/default-body.php b/default-body.php index ee48848..100d22e 100644 --- a/default-body.php +++ b/default-body.php @@ -26,5 +26,7 @@ +

+ diff --git a/default-embedded-wayf.php b/default-embedded-wayf.php index 844072b..fdf6a4e 100644 --- a/default-embedded-wayf.php +++ b/default-embedded-wayf.php @@ -11,7 +11,7 @@ //////////////////// ESSENTIAL SETTINGS //////////////////// // URL of the WAYF to use -// Examples: "https://wayf.switch.ch/SWITCHaai/WAYF", "https://wayf-test.switch.ch/aaitest/WAYF"; +// Examples: "https://wayf.example.org/SWITCHwayf/WAYF" // [Mandatory] var wayf_URL = "https://"; @@ -127,7 +127,7 @@ var wayf_show_categories = true; // EntityIDs of Identity Provider that should not be shown at all // Example of how to hide certain Identity Provider -// var wayf_hide_idps = new Array("https://idp.unige.ch/idp/shibboleth", "https://lewotolo.switch.ch/idp/shibboleth"); +// var wayf_hide_idps = new Array("https://idp.unige.ch/idp/shibboleth", "https://aai-logon.switch.ch/idp/shibboleth"); // [Optional, commented out by default] // var wayf_hide_idps = new Array(); @@ -143,7 +143,7 @@ var wayf_show_categories = true; // var wayf_use_discovery_service = false; // Session Initiator URL of the Service Provider -// Examples: "https://econf.switch.ch/Shibboleth.sso/Login", "https://dokeos.unige.ch/Shibboleth.sso/DS" +// Examples: "https://interact.switch.ch/Shibboleth.sso/Login", "https://dokeos.unige.ch/Shibboleth.sso/DS" // This will implicitely be set to wayf_sp_samlDSURL = wayf_sp_handlerURL + "/Login"; // or will be set automatically if the page where the Embedded WAYF is placed is called // with a 'return' and an 'entityID' GET Arguments @@ -154,16 +154,15 @@ var wayf_show_categories = true; // Default IdP to preselect when central WAYF couldn't guess IdP either // This is usually the case the first time ever a user accesses a resource // [Optional, default: commented out] -// var wayf_default_idp = "https://aai.switch.ch/idp/shibboleth"; +// var wayf_default_idp = "https://aai-logon.switch.ch/idp/shibboleth"; // Set a custom Assertion Consumer URL instead of // the default wayf_sp_handlerURL + '/SAML/POST' // Only relevant if wayf_use_discovery_service is false -// Examples: "https://olat.uzh.ch/shib/samlaa", +// Examples: "https://my-app.switch.ch/custom/saml-implementation/samlaa" // This will implicitely be set to wayf_sp_samlACURL = wayf_sp_handlerURL + "/SAML/POST"; -// "https://foodle.feide.no/simplesaml/shib13/sp/AssertionConsumerService.php" // [Optional, commented out by default] -// var wayf_sp_samlACURL = "https://maclh.switch.ch/foo/bar"; +// var wayf_sp_samlACURL = "https://my-app.switch.ch/custom/saml-implementation/samlaa"; // Overwites the text of the checkbox if // wayf_show_remember_checkbox is set to true @@ -215,7 +214,7 @@ var wayf_show_categories = true; // var wayf_additional_idps = [ // // {name:"International University X", -// entityID:"urn:mace:switch.ch:SWITCHaai:example.university.org", +// entityID:"urn:mace:example.org:example.university.org", // SAML1SSOurl:"https://int.univ.org/shibboleth-idp/SSO"}, // // {name:"Some Other University", diff --git a/default-header.php b/default-header.php index 60d903f..7479af8 100644 --- a/default-header.php +++ b/default-header.php @@ -109,14 +109,14 @@
diff --git a/functions.php b/functions.php index 88696e1..6ce96a6 100644 --- a/functions.php +++ b/functions.php @@ -32,11 +32,16 @@ function initConfigOptions(){ global $federationName; global $supportContactEmail; global $federationURL; + global $organizationURL; + global $faqURL; + global $helpURL; + global $privacyURL; global $imageURL; global $javascriptURL; global $cssURL; global $logoURL; global $smallLogoURL; + global $organizationLogoURL; global $IDPConfigFile; global $backupIDPConfigFile; global $metadataFile; @@ -50,13 +55,13 @@ function initConfigOptions(){ // Set independet default configuration options $defaults = array(); $defaults['defaultLanguage'] = 'en'; - $defaults['commonDomain'] = '.switch.ch'; + $defaults['commonDomain'] = getTopLevelDomain($_SERVER['SERVER_NAME']); $defaults['cookieNamePrefix'] = ''; $defaults['cookieSecurity'] = false; $defaults['cookieValidity'] = 100; $defaults['showPermanentSetting'] = false; $defaults['useImprovedDropDownList'] = true; - $defaults['useSAML2Metadata'] = true; + $defaults['useSAML2Metadata'] = false; $defaults['SAML2MetaOverLocalConf'] = false; $defaults['includeLocalConfEntries'] = true; $defaults['enableDSReturnParamCheck'] = true; @@ -68,9 +73,13 @@ function initConfigOptions(){ $defaults['useEmbeddedWAYFRefererForPrivacyProtection'] = false; $defaults['useLogging'] = true; $defaults['exportPreselectedIdP'] = false; - $defaults['federationName'] = 'SWITCHaai Federation'; - $defaults['federationURL'] = 'http://www.switch.ch/aai/'; - $defaults['supportContactEmail'] = 'support-contact@example.org'; + $defaults['federationName'] = 'Identity Federation'; + $defaults['organizationURL'] = 'http://www.'.$defaults['commonDomain']; + $defaults['federationURL'] = $defaults['organizationURL'].'/aai'; + $defaults['faqURL'] = $defaults['federationURL'].'/faq'; + $defaults['helpURL'] = $defaults['federationURL'].'/help'; + $defaults['privacyURL'] = $defaults['federationURL'].'/privacy'; + $defaults['supportContactEmail'] = 'support-contact@'.$defaults['commonDomain']; $defaults['imageURL'] = 'https://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).'/images'; $defaults['javascriptURL'] = 'https://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).'/js'; $defaults['cssURL'] = 'https://'.$_SERVER['SERVER_NAME'].dirname($_SERVER['SCRIPT_NAME']).'/css'; @@ -97,8 +106,9 @@ function initConfigOptions(){ $defaults['redirectStateCookieName'] = $cookieNamePrefix.'_redirection_state'; $defaults['SAMLDomainCookieName'] = $cookieNamePrefix.'_saml_idp'; $defaults['SPCookieName'] = $cookieNamePrefix.'_saml_sp'; - $defaults['logoURL'] = $imageURL.'/switch-aai-transparent.png'; - $defaults['smallLogoURL'] = $imageURL.'/switch-aai-transparent-small.png'; + $defaults['logoURL'] = $imageURL.'/federation-logo.png'; + $defaults['smallLogoURL'] = $imageURL.'/small-federation-logo.png'; + $defaults['organizationLogoURL'] = $imageURL.'/organization-logo.png'; // Initialize dependent defaults foreach($defaults as $key => $value){ diff --git a/images/federation-logo.png b/images/federation-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..7b23a83388ef6117145049dc327eec9ed33844fa GIT binary patch literal 5608 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 literal 0 HcmV?d00001 diff --git a/images/organization-logo.png b/images/organization-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..9a582904bdbb32034a8353fd286d44411bdd68bb GIT binary patch literal 6965 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 literal 0 HcmV?d00001 diff --git a/images/small-federation-logo.png b/images/small-federation-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..3cf7f1a937bc52aef91fc3b10f34a3334f9ec555 GIT binary patch literal 4600 zcmeI0dsGuw9>)U|p_D)stQN3@RG?7EWJ2EMv3Ux%@j*Dq7NHKwM50M1olHoAQc-DH zx?qdgS}e<}P;7m~g56@fysXRWfvp8$d06m(1-iB<_&}g7?u18x>U#LYKS@qz?%etP zzV~-Ozu&#*++=Opw1Md4;Y1)1h*6QkX#5_E|6XuhfnT*BrESJc}LeJdC`JA)!jN z0ytS2nTo>F)J-w6)ZH?UoE#DE6l&z+0%{n8NJh0vqvIOG$kV!9ylv?Q$fRi#YF!C;^mLMRBj6973J4nU;= zG+Hoj5v((5Fvu9J(Y-h$GN&Vibuv_`#gvGKWYL9^5Iq(~CR+xwerDrTYb6rvP#WDV z4V(*LgtP!ip#o|(@F-6m77fn_`AAP)j7bXv(XbBDqcRvbpN|s{BNQhlk#IMoN}MyK z5+X9a8rEP@!f?G_Dd*DYbdDGlvV}Yv69k2Pwvf&gQkis`fX!oz#DY-Z|N76*b9Rgc z+PD)%j?43?3>JgVp$kC100c!;KFDK7D2)z-G%^?u*&?gN zWrZMBAYg+6T$c4X*#)i-$qHdqnF7njD59QDpB6%Oumxopd5)zu-!th9olXW<`EWc; zfk4D(QgM(pDw7R@><~~OWQv5m5E>nyE>7_w*ZFuXNt$^rpHI#lK(T-&20<2`%6h!= z0@rzEE8Y32PA>z?h=8SJ7nHE|#UJ{YP}+|#?1d05g~An}FoYp!41%b_d6r#)v?UqA z5M45&B?+Vqk_3_|HJ0b;@E4iSPVI>WFPB+k*XmK#^y-((09XZE)`$*Ym>{qyez}Z` zDKQm1M{Bk)EX;T+Y;muJvgL(JY1wYLDoC?4jBE^+!wN{R!pPxLgA$V^zoCUR*vy1f z%EbaRy^D22fj@@uXc#lS_*RGSnt*lNT&zD6{FA@V7vPiEwkj?UVnwl(#xky@P_o)A zZ5*~FDuVPG!+ruDyr_EGxm*)1{3e!;|=$ZT$(UlHl@5pd_6JIWwI!8j9{B?hkwg$ zerRn)+vT*d0Xhi28FzDsuYEyL(F5{dvN#;CLsw7-Pl6XA$ZdzY!?W`2S@*tCV@hQm z%go=`)8F5pGDaL6%Vs|7GzNW@HPLDRhVi=DR^iei@b~o{IK?lCEB$*(NlC@EKkcbHLiPNWRJy)*m`;_bB z( zt#f$nuZL|L0S`B~JAa$%cKo`ww$_)!nOK)rVK(0iQl+M*HXkV}ES&nZq@-aN^W!2% z8*P0;Lc&mhH`3AG-V+!coaR_mU~b=4HyQY59U(C;u2Z7F+T9(ry)jiPIN0!(gZF;4 zaAW!Fe;TXK`DfA>SvKNxy29ws?w;u-4l#{KyNk`fcFn0^?u|p)*dF^M!)C5|6US3}2@tfo0<0}Il zNEE@u{>-0q?zFbH7Q}ehULbhpG!7LU&CMM>*6r--T2#!es;c_6ta+rcU9ol`uvxoz z?{81FBM4F#w4%DSw13K59`}u3y~$((z>JIx-odn2_3`oX=J#Ld74PX(R58+BU-@Fy zg);#`L3{mHRG&LH@pWr zxAMK8ug@j7@dmeW@NAvhSaBuo&zD?Z3IA^5`~a(-{h+b2@sI+BYn+~W=Hu(=k&qNj zD!oEH3EZ$7T0h>^)#Z{SzJB0xOG`^=U-{d?^=j>z;b zY`*)n@l;05yX&&i`#!GX9Rg(Bi; zpSFb7yJCveMR+m9-CZL;*zkQ;gJ{Cu-acjDpCMe21 zy1TkeHhb25>mv2MhA)DDbq<^~7{;$woJ=1eb=f%*TnJ;p@3sWOg9mm5(~sL}9P_)L Qmj7s?M4N=C`8y8$53=&I!2kdN literal 0 HcmV?d00001 diff --git a/images/switch-aai-transparent-small.png b/images/switch-aai-transparent-small.png deleted file mode 100644 index 09a9f4530edba19dafa7702a6753e8ca33b5939e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1573 zcmbVMeM}Q)7(X~Ff(5EpL^9cVfI~y?qu)L0>?gKjSuF*t!^P|M3MXx^Tu)oO#VOSR z4Q|MsQ!^*TkGaJ7mAPzlag(rR8vih;i7tK(7f0L@)R4^mq1_dz+aJayyX5k|&wIb$ z@A-J2=enKs%L?*K^8o-Tu-hyyVO=b|lIha`AZu>rEnxxX@m3Gt!20&Rv5(|a}HUQKtjfF|7jpiXQ-NJl_R=!ST`n~JwlIv>3Bb*Lsr2m(QxC!ts{5Q-2nJv^aH2>bLg z3PTeRzD*BL2IX-$Av4R-kP5+M6sE=?HICp4rADKvhU6HIp_m-SWD3Es!|_}=6qzcNP%<<|hEW{B&|ol~*91DkyXb$ycp*CC z-V~-$7ad_YaFlQ#{_+f2sNKsQrGY{;#2XwVTnZVmu+)Yi9pdd4JuG}de2kC4a4m-8 z8YQNYV`?pqYppt+MWr_4D%@&RS(O=$7jdn%CONLE)tPG5RvfotCacQqs4v01z(1z^ue>L@zW-A*R0sx5H^;x4C37TnV0!z!^#$Yk@X#S) zVmM(mKE+`L0Ax4XEk<|jXYUiu%5UzaQYrCh$%=&};SwU`di z3>?kfnD|!Q7@O90r9c0dK=E5=xZY!ze|vNP*g)SLTk+rxAZuv)>C%f${!4FjMYouq zo}Qn|=%JA~|0osyAa$Ukq3{sVKWo2X#^PSFXnUWe7(CgX>ikPz@N2Z{_Kv<{X!9zQ zd=%OBV`ZUzNxyWftle0!cKiLc&cL>jnW-X)p?_35L_=Ti$&(`AKfJj^_H@hO?BtRy zPmo!!eyr8n6XILo@;in^3T&@>e>^Wa^yg4gkwx8@Q<}K@Fj0zh9XUR`YwgZi=;n5h z7AUXFTO_(^y+|oe`Ia}2ASW>zxW6lEvzzAap?2+5LTA0jGe^WdwjWlCE}yLbqRZ8> z{&u42+@-+<=W<7f^4#0oN-Rs`pju+5GU{O*_E>DYaQaI_x3du()S)$ z;}7up$v$l1g(_oR+js|1*$wHWO@;e_N2@)XJBLZnEB0gYKMF6h=Of82I!z2&%RUB}-` C)gHV6 diff --git a/images/switch-aai-transparent.png b/images/switch-aai-transparent.png deleted file mode 100644 index 58bdb6e34f43b1240ed849581ef2507bb024ccec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3881 zcmV+^57zLBP)Gm;rVat;b2SyYA@7~(h#K~O|Q7FS?J z5fK4(MHdMQu1b(aL_{&L2q<7)kVQmU7Xugoxdv|CyQ|x}x~jW>)$8xquex8q{`z&* z9{}zPN;@pTt4gio3%HiBZPCUvNP&VTTgh?n*qTIVBNq{okiZWe@Hi&ZXBJ-B{*F_Fr z=8sF)`1v{lfKUJ+P}poC4*;?>nrEhPcxW9m3uOa7H=2)f6v{T7C^i@6DwK8O<2Ntz zJ(M-W|Dg`=pK6AGt;uHdzVhwU^FNZeE)UmDzexw zH^RyJ4+hR402l#dV1Py-07((4NsBi*ZWg2oqj^zDOndZeMd&i!`5b*+rjdc6;s3nX z|ECt`beZ1WUz$INLHIM5k_Eu3HZ+;>XD(zOfI2n+Qqh0r)B@0P83CZhg_A5ySCi4H4=RL8q2o|B^doc;x&qyV`k)8U2s8n`g+9XwOo8dJJgg3{ zgjujX>BC5f}%}vq=ZtEDSIiWDD9L7ly_7rRh?=_4WTAc z_fo5=SE)~_A4O;)`XcTkT#+3jWg?9t{UWbLiK1$v_M#g_w~7{vo)^6%Iw?jJQx|g- zV~b^om5E&x8xorqr->VidyB`5=Zn{f-xPl#ftOI1aF*aoWJ{coxGFJ9Lue{AM;eE= zi*}NBjW$Nd(KYDq^cZ>`{S3W_J|!t3X(AaQnJQT(c}a4ZfiTn=?u{Xu`>H*nq;2HVq~>t*UD~@Jt})m zc5(%Mh1Ckqirf|FRy>r0<+SB|<+jP4kn5J4mRFE>l^4h#mcJ@LslZUMQ;1P0QfO0{ zP^2l^C`Kz5DPC55$&_T;Gvk;g%ueQ%lAMy8QnJ!eOWesJ2T1<=)mqhuYD6`bT9n!$wJx;}>Kf{S>bupO)L&>wYq)D{)u`2YtVz|h z)lAT=(7dOG(_(4GY8}z))rPfAwWGAlwD0J^I%Yc2I!AQ+bg{Y?x_sRV-61`Sp1od* zUaj7UK11J2KTE$!|Mg1Ml_4wluk2d+#lX}c&fuiMBSQ&855p|O7Q?qj+D06sGNXIO zRAU$89mdVZZ%lMdB212&+&86}t~T9m+F?3xW^N`lt23K0S2YhaFE<}z(OEvMeAW#M ztc8Qc4vSWcPnKquNtWj|^Xt+rM@&a1c5)IDBxlblmRP?u0nGI^{a`I7>MDJC`~? zby0TVxzxH$xth9eb8UCSx_P?ocN=n-cjvfQyH9zTdu;dU^rU#M^DOmz=B4c=^lDiR zul87dVD;lQYHRpwn!JIxyY~U_Cq5cJ2|hoq#jW*OTekMOuc2?cZ`V57x=rh9*3I}i z_!am)^4IiF_U{M~4G0aW4)_r06j&HI9JDfMd(iD*+2H8l<`8^HKuBfC^m^y@2iK2< znug|t4sOuckhJ`5Wc7*-QD$M$Adu&2Y_!^^{`IF6h{oL5{s zZV`7P!aAZbVm#71vM}-m&zg6DHxXqURU9=L?HFAe{U*jO=2*;!Snt?Vu?um5arN

az8RZJ2GGZ5`=K={wU$w%cz%o&jZqXLRgP*^#|t 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

az8RZJ2GGZ5`=K={wU$w%cz%o&jZqXLRgP*^#|t zEYmf!YA0!D?9QLF46+Kd-tP+B)siirotZuQjq5kHIU+g2oT1%TyN`W~`8N97o;}8U z4)6Jr%gw!&XOLH%H?&caF6sK zwL4mOO#WEjvCrQ}e}DhD>+!}4^@`#XxDzQSo}Uaj+4TeKhw4h%%Dl??Q~XoIRlZf7 z)#laJHF7ltwQy~6?ZoNO)4gY$&NSEQ)g7;A)aRWAXOqvq{4wmu!E>JHI?l7s*IiJ% zP~Jdm$Zdog(;BCmqMC-AgPZ#8@o-r z8-6zZxuM6br}2*Yo#tMP-j=>qeQo`={a5Zf-MxO#{od_?H3NNv{)6|2LWhR$bML=+ z5clBC!<2`!k1`))ALl+1ds6&V?rFs@TEEl}n+;zYaT@730}=k=KLo9Tls6v*B5@b`@MTAXlm?@@Xf;8{C6_% zPQ5pI-!bho{d6XNX7)qwN12aRpID!|J_mjtpWQNtpDUTyns52y`Q`CK{KA5OEo3iQ z0R#;=G7^BdrvRV^13*K4CrM=4M=l9k_P$F5{)(5q=90_+sLTW)zzzUUbS+!-Anj;f z^xOvxKRW;$8-I2g8Xt@@-3AHB03k&a1M~Bw}V18&}VYX>uVZIV=_8|c6Gt2&U zQIc0tOB%LF*E^ds|J6VJ4W{?HsE;h{-T(jq32;bRa{vGf6951U69E94oEQKA03mcm zSaefwW^{L9a%BKVa$#_2X=6igZgypIbY*fNC`oQ~Wo#*Thx!=+00fmuL_t(|oXnVM zY!*cv#>W-~q6P?8MdXsCX;2B&4@d}7lp}%=J`|F21R;nYEG0AoqA@0TG(c6(1S}Yl zYLP>PKsY|22^2v|2qK{kN&R9Qt_08`a@FV0Jll@b*`2=cE~cCO^6t(&Gw=N8nQK=y zG&Cq&oxq!*92@{Azz<+2C;Xr>PvCp7(rgdomh#i1+DPphu+*nZ0$jz?$3X+@z+G@0RDjRHCa@b^2U21T z3zkvaEuwPinALUjmwZDVP|H+&k;8(eMmkoR|M3}`+ImqW%sh=65&j6ReeozH|j%dUp))jPC zqd6h^EzHkwa7;qu@j3c#sM7+Ol<)1Z@+FbCIDU?P|erh_q{Q%D^x(&BoKeSUwV`v-JP!O>X^YP2Ko6gb2C zwn{G}+a0>utYdsa=9Dw<(G=o{WscIz@?F)m56Ye`D}k&mb7E*4_nhZh=p=XtOp{Kh zd!0iX8jSkYR(enVd5Ja4WFvmq(#i%cv#(u3=4_2B>oMmmFxW$_!yGwyoHa+k(tE{r z#@0Sftu}`b`QQ&W)TW++=U5GswY$bjo69o8jI=pS8)>A;zI6j^v&zRYX9x2-q+w1= zskCA!GvhMyCR3l2s69M0^9<>SlWfG^cf>f-YYIEZtzTdlDbkO zZ35E@5;UiRd0o<+Ik_I1%^cPt$9{Pwkb_VkrDwxStan5@TBkV?L6ourb4q42?QK5G zi=)i4EspZC51lif%V>B9OBctSFPYaT4Rg}nbL4PwQ|S}wRq(gc%hwu5ho_=#+;bLy zLQlhj&HGs^y-GEme1i9kDUR|VGVf`n--9lI0}fprbAkah&=X4`XF=aM<|uvAk{j8l z+ZySzQXFMoUaDH#9Qm|y-qWxmR?y!{U#9fIpetCX^jCpqr#@UmS$>{sdJlRdVRPm) zZ=5HV66!j}G-ol(c6DeAEOT0{waxiP=_wYvkt+QTanE#}>BCs@Og8>-Ncl`~Md|N$ zAG59}5;i9o04qJ6EN!UgeH?S%V%c5}ZSdtIFIBB=PChe#RQhBkpJ(JyFdj@*dQFrW zvCC1hEKzb+Kg~LdBZ4dEAgBh%LNsyA$zVY8@SW1j*CeGkTsh#(Qcdqd6$zL#2;5Qn zAR-5b-r!}WXUS#DoEB^UV-6o=x%rJFy1}B324#gbdXu5ejtH*6&@D{b9OlbusDvGP z%MnX0|D#7-bC@;-oHy#14PQP=a3Dq81JT1H 'About AAI', // This string can be hidden by setting it to '' +'about_organisation' => 'About SWITCH', // This string can be hidden by setting it to '' +'additional_info' => 'SWITCH provides innovative, unique internet services for the Swiss universities and internet users.', // This string can be hidden by setting it to '' + +// Generic strings +'faq' => 'FAQ', // This string can be hidden by setting it to '' +'help' => 'Help',// This string can be hidden by setting it to '' +'privacy' => 'Privacy', // This string can be hidden by setting it to '' 'title' => 'Home Organisation Selection', -'header' => 'Select your Home Organisation', -'about_federation' => 'About AAI', -'about_organisation' => 'About SWITCH', -'faq' => 'FAQ', -'help' => 'Help', -'privacy' => 'Privacy', +'header' => 'Select your Home Organisation', 'make_selection' => 'You must select a valid Home Organisation.', 'settings' => 'Default Home Organisation for this web browser', 'permanent_select_header' => 'Permanently set your Home Organisation', @@ -30,7 +44,6 @@ $langStrings['en'] = array ( 'select_idp' => 'Select the organisation you are affiliated with', 'search_idp' => 'Type the name of the organisation you are affiliated with', 'remember_selection' => 'Remember selection for this web browser session.', -'additional_info' => 'SWITCH provides innovative, unique internet services for the Swiss universities and internet users.', 'invalid_user_idp' => 'There may be an error in the data you just submitted.
The value of your input \'%s\' is invalid.
Only the following values are allowed:', 'contact_assistance' => 'Please contact %s for assistance.', 'no_arguments' => 'No arguments received!', @@ -55,13 +68,17 @@ $langStrings['en'] = array ( // Deutsch $langStrings['de'] = array ( +// Read note on line 12 +'about_federation' => 'Über AAI', // This string can be hidden by setting it to '' +'about_organisation' => 'Über SWITCH', // This string can be hidden by setting it to '' +'additional_info' => 'SWITCH erbringt innovative, einzigartige Internet-Dienstleistungen für die Schweizer Hochschulen und Internetbenutzer.', // This string can be hidden by setting it to '' + +// Generic strings +'faq' => 'FAQ', // This string can be hidden by setting it to '' +'help' => 'Hilfe', // This string can be hidden by setting it to '' +'privacy' => 'Datenschutz', // This string can be hidden by setting it to '' 'title' => 'Auswahl der Home Organisation', 'header' => 'Home Organisation auswählen', -'about_federation' => 'Über AAI', -'about_organisation' => 'Über SWITCH', -'faq' => 'FAQ', -'help' => 'Hilfe', -'privacy' => 'Datenschutz', 'make_selection' => 'Sie müssen eine gültige Home Organisation auswählen', 'settings' => 'Standard Home Organisation für diesen Webbrowser', 'permanent_select_header' => 'Home Organisation speichern', @@ -77,7 +94,6 @@ $langStrings['de'] = array ( 'select_idp' => 'Wählen Sie die Organisation aus, der Sie angehören', 'search_idp' => 'Tippen Sie den Namen der Organisation, der Sie angehören', 'remember_selection' => 'Auswahl für die laufende Webbrowser Sitzung speichern.', -'additional_info' => 'SWITCH erbringt innovative, einzigartige Internet-Dienstleistungen für die Schweizer Hochschulen und Internetbenutzer.', 'invalid_user_idp' => 'Möglicherweise sind die übermittelten Daten fehlerhaft.
Der Wert der Eingabe \'%s\' ist ungültig.
Es sind ausschliesslich die folgenden Wert erlaubt:', 'contact_assistance' => 'Für Unterstützung und Hilfe, kontaktieren Sie bitte %s.', 'no_arguments' => 'Keine Argumente erhalten!', @@ -101,13 +117,18 @@ $langStrings['de'] = array ( // Francais $langStrings['fr'] = array ( + +// Read note on line 12 +'about_federation' => 'À propos de l\'AAI', // This string can be hidden by setting it to '' +'about_organisation' => 'À propos de SWITCH', // This string can be hidden by setting it to '' +'additional_info' => 'SWITCH fournit des prestations innovantes et uniques pour les hautes écoles suisses et les utilisateurs d\'Internet.', // This string can be hidden by setting it to '' + +// Generic strings +'faq' => 'FAQ', // This string can be hidden by setting it to '' +'help' => 'Aide',// This string can be hidden by setting it to '' +'privacy' => 'Protection des données',// This string can be hidden by setting it to '' 'title' => 'Sélection de votre Home Organisation', 'header' => 'Sélectionnez votre Home Organisation', -'about_federation' => 'À propos de l\'AAI', -'about_organisation' => 'À propos de SWITCH', -'faq' => 'FAQ', -'help' => 'Aide', -'privacy' => 'Protection des données', 'make_selection' => 'Vous devez sélectionner une Home Organisation valide.', 'settings' => 'Home Organisation par défaut pour ce navigateur', 'permanent_select_header' => 'Définir une Home Organisation de façon permanente', @@ -123,7 +144,6 @@ $langStrings['fr'] = array ( 'select_idp' => 'Veuillez sélectionner l\'organisation à laquelle vous appartenez.', 'search_idp' => 'Veuillez taper le nom de l\'organisation à laquelle vous appartenez.', 'remember_selection' => 'Se souvenir de mon choix pour cette session.', -'additional_info' => 'SWITCH fournit des prestations innovantes et uniques pour les hautes écoles suisses et les utilisateurs d\'Internet.', 'invalid_user_idp' => 'Une erreur s\'est produite.
La valeur de votre donnée \'%s\' n\'est pas valide.
Seules ces valeurs sont admises :', 'contact_assistance' => 'Contactez le support %s si l\'erreur persiste.', 'no_arguments' => 'Pas de paramètre reçu !', @@ -142,13 +162,17 @@ $langStrings['fr'] = array ( // Italian $langStrings['it'] = array ( +// Read note on line 12 +'about_federation' => 'Informazioni su AAI', // This string can be hidden by setting it to '' +'about_organisation' => 'Informazioni su SWITCH', // This string can be hidden by setting it to '' +'additional_info' => 'SWITCH eroga servizi Internet innovativi e unici per le scuole universitarie svizzere e per gli utenti di Internet.', // This string can be hidden by setting it to '' + +// Generic strings +'faq' => 'FAQ', // This string can be hidden by setting it to '' +'help' => 'Aiuto', // This string can be hidden by setting it to '' +'privacy' => 'Protezione dei dati', // This string can be hidden by setting it to '' 'title' => 'Selezione della vostra Home Organisation', 'header' => 'Selezioni la sua Home Organisation', -'about_federation' => 'Informazioni su AAI', -'about_organisation' => 'Informazioni su SWITCH', -'faq' => 'FAQ', -'help' => 'Aiuto', -'privacy' => 'Protezione dei dati', 'make_selection' => 'Per favore, scelga una valida Home Organisation.', 'settings' => 'Home Organisation predefinita per questo web browser.', 'permanent_select_header' => 'Salvare la Home Organisation.', @@ -164,7 +188,6 @@ $langStrings['it'] = array ( 'select_idp' => 'Selezioni l\'organizzazione con la quale è affiliato.', 'search_idp' => 'Digitare il nome dell\'organizzazione con cui e\' affiliato.', 'remember_selection' => 'Ricorda la selezione per questa sessione.', -'additional_info' => 'SWITCH eroga servizi Internet innovativi e unici per le scuole universitarie svizzere e per gli utenti di Internet.', 'invalid_user_idp' => 'Errore nei parametri pervenuti.
Il valore del parametro \'%s\' non  valido.
Solo i seguenti valori sono ammessi:', 'contact_assistance' => 'Se l\' errore persiste, si prega di contattare %s.', 'no_arguments' => 'Parametri non pervenuti!', @@ -182,19 +205,23 @@ $langStrings['it'] = array ( // Portuguese $langStrings['pt'] = array ( -'title' => 'SWITCHaai: Selecção de Instituição de Origem', +// Read note on line 12 +'about_federation' => 'Sobre AAI', // This string can be hidden by setting it to '' +'about_organisation' => 'Sobre a SWITCH', // This string can be hidden by setting it to '' +'additional_info' => 'A SWITCH foundation é uma instituição gere e opera a rede de investigação e ensino suiça por forma a garantir conectividade de alto desempenho à Internet e a redes de I&D globais para o beneficio de uma educação superior na suiça', // This string can be hidden by setting it to '' + +// Generic strings +'faq' => 'FAQ', // This string can be hidden by setting it to '' +'help' => 'Ajuda', // This string can be hidden by setting it to '' +'privacy' => 'Privacidade', // This string can be hidden by setting it to '' +'title' => 'Selecção de Instituição de Origem', 'header' => 'Seleccione a sua Instituição de Origem', -'about_federation' => 'Sobre AAI', -'about_organisation' => 'Sobre a Switch', -'faq' => 'FAQ', -'help' => 'Ajuda', -'privacy' => 'Privacidade', 'make_selection' => 'Deverá seleccionar uma Instituição de Origem Válida', 'settings' => 'Instituição de Origem por defeito para este web browser', 'permanent_select_header' => 'Defina permanentemente a sua Instituição de Origem', 'permanent_cookie' => 'Nesta página poderá definir a sua Instituição de Origem para este web browser. Defenir uma Instituição de Origem levará a que seja redireccionado directamente para a sua Instituição de Origem aquando do acesso de recursos-AAI. Não use esta funcionalidade se possuir várias contas de AAI.', 'permanent_cookie_notice' => 'Por omissão a configuração da sua instituição de origem ter´ a funcionalidade de não ser necess´rio seleccionar novamente recursos federados. A configuração &ecute;:', -'permanent_cookie_note' => 'Poderá efectuar um reset às configurações no url wayf.switch.ch/SWITCHaai/WAYF', +'permanent_cookie_note' => 'Poderá efectuar um reset às configurações no url %s', 'delete_permanent_cookie_button' => 'Reset', 'goto_sp' => 'Salve e continue para a sua Instituição de Origem', 'permanently_remember_selection' => 'Memorize a sua selecção permanentemente e passe o mecanismo WAYF apartir de agora.', @@ -204,8 +231,6 @@ $langStrings['pt'] = array ( 'select_idp' => 'Seleccione a sua Instituição de Origem', 'no_idp' => 'Não existem Organizações de Origem na federação \'%s\'', 'remember_selection' => 'Memorize a selecção para esta sessão.', -'import_swisssign' => 'A SWITCH recomenda a importação do\'SwissSign Root CA Certificate\' no seu browser. Desta forma, o seu browser estabelecer´ uma ligação segura com os servidores AAI.', -'additional_info' => 'A SWITCH foundation é uma instituição gere e opera a rede de investigação e ensino suiça por forma a garantir conectividade de alto desempenho à Internet e a redes de I&D globais para o beneficio de uma educação superior na suiça', 'invalid_user_idp' => 'Poderá existir um erro nos dados que enviou.
Os valores enviados \'%s\' são inválidos.
Apenas os valores seguintes são permitidos:', 'contact_assistance' => 'Contacte %s para assistencia.', 'no_arguments' => 'Nenhum argumento recebido!', diff --git a/templates.php b/templates.php index 96a6d47..cbe58a8 100755 --- a/templates.php +++ b/templates.php @@ -16,7 +16,8 @@ if(!isset($_SERVER['REMOTE_ADDR']) || basename($_SERVER['SCRIPT_NAME']) == 'temp function printHeader(){ - global $langStrings, $language, $imageURL, $javascriptURL, $cssURL, $logoURL, $useImprovedDropDownList; + global $langStrings, $language, $imageURL, $javascriptURL, $cssURL, $logoURL, $useImprovedDropDownList, $organizationLogoURL; + global $federationURL, $organizationURL, $faqURL, $helpURL, $privacyURL; // Check if custom header template exists if(file_exists('custom-header.php')){ -- GitLab