diff --git a/modules/cron/www/croninfo.php b/modules/cron/www/croninfo.php
index 12e066792f614808f4b680ae36a8e45ea2735ecc..44a3a1ab9f13d356f87477aba94b853a2e3a9772 100644
--- a/modules/cron/www/croninfo.php
+++ b/modules/cron/www/croninfo.php
@@ -11,11 +11,7 @@ require_once('_include.php');
 $config = SimpleSAML_Configuration::getInstance();
 $session = SimpleSAML_Session::getInstance();
 
-if (!isset($session) || !$session->isValid('login-admin') ) {
-	SimpleSAML_Utilities::redirect('/' . $config->getBaseURL() . 'auth/login-admin.php',
-		array('RelayState' => SimpleSAML_Utilities::selfURL())
-	);
-}
+SimpleSAML_Utilities::requireAdmin();
 
 $cronconfig = SimpleSAML_Configuration::getConfig('module_cron.php');
 
diff --git a/modules/ldapstatus/www/index.php b/modules/ldapstatus/www/index.php
index 26a37a27238231bc62d0e6422d6756bc16c1e2e1..d83d71c7d1268789d3559203900c7622f13458f4 100644
--- a/modules/ldapstatus/www/index.php
+++ b/modules/ldapstatus/www/index.php
@@ -34,7 +34,7 @@ if (array_key_exists('orgtest', $_REQUEST)) {
 		if (isset($orgs[$_REQUEST['orgtest']]) && array_key_exists('adminAccess', $orgs[$_REQUEST['orgtest']]))
 			$allowedusers = array_merge($allowedusers, $orgs[$_REQUEST['orgtest']]['adminAccess']);
 	
-		if ($session->isValid('login-admin') ) {
+		if (SimpleSAML_Utilities::isAdmin()) {
 			// User logged in as admin. OK.
 			SimpleSAML_Logger::debug('LDAPStatus auth - logged in as admin, access granted');
 			
@@ -64,9 +64,7 @@ if (array_key_exists('orgtest', $_REQUEST)) {
 			
 		} else {
 			// If authsource is not defined, init admin login.
-			SimpleSAML_Utilities::redirect('/' . $config->getBaseURL() . 'auth/login-admin.php',
-				array('RelayState' => SimpleSAML_Utilities::selfURL())
-			);
+			SimpleSAML_Utilities::requireAdmin();
 		}
 
 		
@@ -86,22 +84,14 @@ if (array_key_exists('orgtest', $_REQUEST)) {
 		
 		
 		
-// 		if (!$session->isValid('login-admin') ) {
-// 			SimpleSAML_Utilities::redirect('/' . $config->getBaseURL() . 'auth/login-admin.php',
-// 				array('RelayState' => SimpleSAML_Utilities::selfURL())
-// 			);
-// 		}
+// 		SimpleSAML_Utilities::requireAdmin();
 		$isAdmin = TRUE;
 	}
 
 } else {
 
 	// Require admin access to overview page...
-	if (!$session->isValid('login-admin') ) {
-		SimpleSAML_Utilities::redirect('/' . $config->getBaseURL() . 'auth/login-admin.php',
-			array('RelayState' => SimpleSAML_Utilities::selfURL())
-		);
-	}
+	SimpleSAML_Utilities::requireAdmin();
 	$isAdmin = TRUE;
 
 }
diff --git a/modules/logpeek/www/index.php b/modules/logpeek/www/index.php
index 691ff1628897e615ca924a98afea34163155499c..dc9a5728eccf663cb2a9dbb3bbe10ef26a5c339c 100644
--- a/modules/logpeek/www/index.php
+++ b/modules/logpeek/www/index.php
@@ -4,11 +4,7 @@
 $config = SimpleSAML_Configuration::getInstance();
 $session = SimpleSAML_Session::getInstance();
 
-if (!$session->isValid('login-admin') ) {
-	SimpleSAML_Utilities::redirect('/' . $config->getBaseURL() . 'auth/login-admin.php',
-		array('RelayState' => SimpleSAML_Utilities::selfURL())
-	);
-}
+SimpleSAML_Utilities::requireAdmin();
 
 
 $logpeekconfig = SimpleSAML_Configuration::getConfig('module_logpeek.php');
diff --git a/modules/memcacheMonitor/www/memcachestat.php b/modules/memcacheMonitor/www/memcachestat.php
index 6cd5d9e6a782a667b0c00217a103ca0867104a74..744db824ef1c079b7038ace727058998f975062e 100644
--- a/modules/memcacheMonitor/www/memcachestat.php
+++ b/modules/memcacheMonitor/www/memcachestat.php
@@ -78,11 +78,7 @@ try {
 	$session = SimpleSAML_Session::getInstance();
 
 	/* Make sure that the user has admin access rights. */
-	if (!isset($session) || !$session->isValid('login-admin') ) {
-		SimpleSAML_Utilities::redirect('/' . $config->getBaseURL() . 'auth/login-admin.php',
-		                               array('RelayState' => SimpleSAML_Utilities::selfURL())
-		                               );
-	}
+	SimpleSAML_Utilities::requireAdmin();
 
 
 	$formats = array(
diff --git a/modules/statistics/www/showstats.php b/modules/statistics/www/showstats.php
index b1f05db4f6d0182d0d45e94aac046745e441231f..1f6f79b5fbc8acca3462e2d28fa063f8a571025f 100644
--- a/modules/statistics/www/showstats.php
+++ b/modules/statistics/www/showstats.php
@@ -12,7 +12,7 @@ $useridattr = $statconfig->getString('useridattr', 'eduPersonPrincipalName');
 
 if ($protected) {
 
-	if ($session->isValid('login-admin') ) {
+	if (SimpleSAML_Utilities::isAdmin()) {
 		// User logged in as admin. OK.
 		SimpleSAML_Logger::debug('Statistics auth - logged in as admin, access granted');
 		
@@ -41,9 +41,7 @@ if ($protected) {
 		
 	} else {
 		// If authsource is not defined, init admin login.
-		SimpleSAML_Utilities::redirect('/' . $config->getBaseURL() . 'auth/login-admin.php',
-			array('RelayState' => SimpleSAML_Utilities::selfURL())
-		);
+		SimpleSAML_Utilities::requireAdmin();
 	}
 }
 
diff --git a/www/admin/config.php b/www/admin/config.php
index 6242d77daae4877a63ce3c80dc1f7cb2ef7c6b59..63a703105b8958c6ddeddff146f47513bb902577 100644
--- a/www/admin/config.php
+++ b/www/admin/config.php
@@ -152,11 +152,7 @@ $config = SimpleSAML_Configuration::getInstance();
 $session = SimpleSAML_Session::getInstance();
 
 /* Check if the user is logged in with admin access. */
-if (!$session->isValid('login-admin') ) {
-	SimpleSAML_Utilities::redirect('/' . $config->getBaseURL() . 'auth/login-admin.php',
-		array('RelayState' => SimpleSAML_Utilities::selfURL())
-	);
-}
+SimpleSAML_Utilities::requireAdmin();
 
 /* Find config directories. */
 $configDir = $config->getBaseDir() . 'config/';
diff --git a/www/admin/metadata.php b/www/admin/metadata.php
index 7524cd687a6064efbfb15a5c129c6411a077d105..41b0fde47653a108c154e220e942878647c8b4f1 100644
--- a/www/admin/metadata.php
+++ b/www/admin/metadata.php
@@ -8,11 +8,7 @@ $session = SimpleSAML_Session::getInstance();
 
 
 /* Check if valid local session exists.. */
-if (!isset($session) || !$session->isValid('login-admin') ) {
-	SimpleSAML_Utilities::redirect('/' . $config->getBaseURL() . 'auth/login-admin.php',
-		array('RelayState' => SimpleSAML_Utilities::selfURL())
-	);
-}
+SimpleSAML_Utilities::requireAdmin();
 
 
 try {
diff --git a/www/admin/phpinfo.php b/www/admin/phpinfo.php
index c70db06af98898a97bafdd8b93afa07b03727976..cecb51d296bb6c4d0f2448c1adbc4f33b1ff3d4c 100644
--- a/www/admin/phpinfo.php
+++ b/www/admin/phpinfo.php
@@ -8,11 +8,7 @@ try {
 	$session = SimpleSAML_Session::getInstance();
 
 	/* Make sure that the user has admin access rights. */
-	if (!isset($session) || !$session->isValid('login-admin') ) {
-		SimpleSAML_Utilities::redirect('/' . $config->getBaseURL() . 'auth/login-admin.php',
-		                               array('RelayState' => SimpleSAML_Utilities::selfURL())
-		                               );
-	}
+	SimpleSAML_Utilities::requireAdmin();
 	phpinfo();
 
 } catch(Exception $e) {
diff --git a/www/example-simple/hostnames.php b/www/example-simple/hostnames.php
index 008d3188bb8432af3a549cd6f0f0c9de68c52dee..690bf62e3f1928b8e9093314970d1edf57f4ddbb 100644
--- a/www/example-simple/hostnames.php
+++ b/www/example-simple/hostnames.php
@@ -7,11 +7,7 @@ $config = SimpleSAML_Configuration::getInstance();
 $session = SimpleSAML_Session::getInstance();
 
 /* Check if valid local session exists.. */
-if (!isset($session) || !$session->isValid('login-admin') ) {
-	SimpleSAML_Utilities::redirect('/' . $config->getBaseURL() . 'auth/login-admin.php',
-		array('RelayState' => SimpleSAML_Utilities::selfURL())
-	);
-}
+SimpleSAML_Utilities::requireAdmin();
 
 
 
diff --git a/www/index.php b/www/index.php
index beb073bdc333ee4fc2d21d8047d4a86edbb9e132..fd5a8010e794fee147cf4ed1ea10faba30ef7dc3 100644
--- a/www/index.php
+++ b/www/index.php
@@ -8,14 +8,10 @@ $session = SimpleSAML_Session::getInstance();
 
 /* Check if valid local session exists.. */
 if ($config->getValue('admin.protectindexpage', false)) {
-	if (!isset($session) || !$session->isValid('login-admin') ) {
-		SimpleSAML_Utilities::redirect('/' . $config->getBaseURL() . 'auth/login-admin.php',
-			array('RelayState' => SimpleSAML_Utilities::selfURL())
-		);
-	}
+	SimpleSAML_Utilities::requireAdmin();
 }
-$loginurl = '/' . $config->getBaseURL() . 'auth/login-admin.php?RelayState=' . SimpleSAML_Utilities::selfURL();
-$isadmin = $session->isValid('login-admin');
+$loginurl = SimpleSAML_Utilities::getAdminLoginURL();
+$isadmin = SimpleSAML_Utilities::isAdmin();
 
 
 $warnings = array();
diff --git a/www/saml2/idp/metadata.php b/www/saml2/idp/metadata.php
index 77355811be7604d9f07acd838dd43e0de4e851b5..1faf98643ac263811ffd3b1f2dbc6d85fe6f6ec7 100644
--- a/www/saml2/idp/metadata.php
+++ b/www/saml2/idp/metadata.php
@@ -12,11 +12,7 @@ if (!$config->getValue('enable.saml20-idp', false))
 
 /* Check if valid local session exists.. */
 if ($config->getValue('admin.protectmetadata', false)) {
-	if (!isset($session) || !$session->isValid('login-admin') ) {
-		SimpleSAML_Utilities::redirect('/' . $config->getBaseURL() . 'auth/login-admin.php',
-			array('RelayState' => SimpleSAML_Utilities::selfURL())
-		);
-	}
+	SimpleSAML_Utilities::requireAdmin();
 }
 
 
diff --git a/www/saml2/sp/metadata.php b/www/saml2/sp/metadata.php
index ed84a00a3af36f1ae2ebc39ff2aa850183ff2e23..8c73dd208a8268e2c105ab1d573174e8f9b68e91 100644
--- a/www/saml2/sp/metadata.php
+++ b/www/saml2/sp/metadata.php
@@ -13,11 +13,7 @@ if (!$config->getValue('enable.saml20-sp', false))
 
 /* Check if valid local session exists.. */
 if ($config->getValue('admin.protectmetadata', false)) {
-	if (!isset($session) || !$session->isValid('login-admin') ) {
-		SimpleSAML_Utilities::redirect('/' . $config->getBaseURL() . 'auth/login-admin.php',
-			array('RelayState' => SimpleSAML_Utilities::selfURL())
-		);
-	}
+	SimpleSAML_Utilities::requireAdmin();
 }
 
 try {
@@ -79,16 +75,12 @@ try {
 	}
 	
 	
-	$adminok = (isset($session) && $session->isValid('login-admin') );
-	$adminlogin = SimpleSAML_Utilities::addURLparameter(
-		'/' . $config->getBaseURL() . 'auth/login-admin.php', 
-		array('RelayState' => 
-			SimpleSAML_Utilities::addURLParameter(
-				SimpleSAML_Utilities::selfURLNoQuery(),
-				array('output' => 'xhtml')
-			)
-		)
-	);
+	$adminok = SimpleSAML_Utilities::isAdmin();
+	$adminlogin = SimpleSAML_Utilities::getAdminLoginURL(
+		SimpleSAML_Utilities::addURLParameter(
+			SimpleSAML_Utilities::selfURLNoQuery(),
+			array('output' => 'xhtml')
+		));
 	
 
 	$sentok = FALSE;
diff --git a/www/shib13/idp/metadata.php b/www/shib13/idp/metadata.php
index 99bfd3647dd515cf63863682cd2aef2664a902aa..071ac241361f019fd78b5af8f3af8557d3cdc13c 100644
--- a/www/shib13/idp/metadata.php
+++ b/www/shib13/idp/metadata.php
@@ -12,11 +12,7 @@ if (!$config->getValue('enable.shib13-idp', false))
 
 /* Check if valid local session exists.. */
 if ($config->getValue('admin.protectmetadata', false)) {
-	if (!isset($session) || !$session->isValid('login-admin') ) {
-		SimpleSAML_Utilities::redirect('/' . $config->getBaseURL() . 'auth/login-admin.php',
-			array('RelayState' => SimpleSAML_Utilities::selfURL())
-		);
-	}
+	SimpleSAML_Utilities::requireAdmin();
 }
 
 
diff --git a/www/shib13/sp/metadata.php b/www/shib13/sp/metadata.php
index d9cda187754d8540cbc7cbee872bb1809bf4b072..39c92d540669d16860c9585d5182cff175555e53 100644
--- a/www/shib13/sp/metadata.php
+++ b/www/shib13/sp/metadata.php
@@ -13,11 +13,7 @@ if (!$config->getValue('enable.shib13-sp', false))
 
 /* Check if valid local session exists.. */
 if ($config->getValue('admin.protectmetadata', false)) {
-	if (!isset($session) || !$session->isValid('login-admin') ) {
-		SimpleSAML_Utilities::redirect('/' . $config->getBaseURL() . 'auth/login-admin.php',
-			array('RelayState' => SimpleSAML_Utilities::selfURL())
-		);
-	}
+	SimpleSAML_Utilities::requireAdmin();
 }