diff --git a/modules/consentAdmin/www/consentAdmin.php b/modules/consentAdmin/www/consentAdmin.php
index c1c77cdf8f37eb77957053db0edc3363e9791da4..fd75bc1d348fdc3cb6f909075c1ab06ced5e1982 100644
--- a/modules/consentAdmin/www/consentAdmin.php
+++ b/modules/consentAdmin/www/consentAdmin.php
@@ -1,265 +1,273 @@
-<?php
-/*
- * consentAdmin - Consent administration module
- *
- * This module enables the user to add and remove consents given for a given
- * Service Provider.
- *
- * The module relies on methods and functions from the Consent module and can
- * not be user without it.
- *
- * Author: Mads Freen <freek@ruc.dk>, Jacob Christiansen <jach@wayf.dk>
- */
-
-/*
- * Runs the processingchain and ignores all filter which have user 
- * interaction.
- */
-function driveProcessingChain($idp_metadata, $source, $sp_metadata, $sp_entityid, $attributes, $userid, $hashAttributes = FALSE) {
-
-	/* 
-	 * Create a new processing chain 
-	 */
-	$pc = new SimpleSAML_Auth_ProcessingChain($idp_metadata, $sp_metadata, 'idp');
-
-	/* 
-	 * Construct the state.
-	 * REMEMBER: Do not set Return URL if you are calling processStatePassive
-	 */
-	$authProcState = array(
-		'Attributes' => $attributes,
-		'Destination' => $sp_metadata,
-		'Source' => $idp_metadata,
-		'isPassive' => TRUE,
-	);
-
-	/* 
-	 * Call processStatePAssive.
-	 * We are not interested in any user interaction, only modifications to the attributes
-	 */
-	$pc->processStatePassive($authProcState);
-
-	$attributes = $authProcState['Attributes'];
-
-	/*
-	 * Generate identifiers and hashes
-	 */
-	$destination = $sp_metadata['metadata-set'] . '|' . $sp_entityid;
-
-	$targeted_id    = sspmod_consent_Auth_Process_Consent::getTargetedID($userid, $source, $destination);
-	$attribute_hash = sspmod_consent_Auth_Process_Consent::getAttributeHash($attributes, $hashAttributes);
-
-	SimpleSAML_Logger::info('consentAdmin: user: ' . $userid);
-	SimpleSAML_Logger::info('consentAdmin: target: ' . $targeted_id);
-	SimpleSAML_Logger::info('consentAdmin: attribute: ' . $attribute_hash);
-
-	/* Return values */
-	return array($targeted_id, $attribute_hash, $attributes);
-}
-
-// Get config object
-$config = SimpleSAML_Configuration::getInstance();
-$cA_config = SimpleSAML_Configuration::getConfig('module_consentAdmin.php');
-$authority = $cA_config->getValue('authority');
-
-$as = new SimpleSAML_Auth_Simple($authority);
-
-// If request is a logout request
-if(array_key_exists('logout', $_REQUEST)) {
-    $returnURL = $cA_config->getValue('returnURL');
-	$as->logout($returnURL);
-}
-
-$hashAttributes = $cA_config->getValue('attributes.hash');
-
-/* Check if valid local session exists */
-$as->requireAuth();
-
-// Get released attributes
-$attributes = $as->getAttributes();
-
-// Get metadata storage handler
-$metadata = SimpleSAML_Metadata_MetaDataStorageHandler::getMetadataHandler();
-
-/*
- * Get IdP id and metadata
- */
-
-
-$local_idp_entityid = $metadata->getMetaDataCurrentEntityID('saml20-idp-hosted');
-$local_idp_metadata = $metadata->getMetaData($local_idp_entityid, 'saml20-idp-hosted');
-
-if($as->getAuthData('saml:sp:IdP') !== NULL) {
-	/*
-	 * From a remote idp (as bridge)
- 	 */
-	$idp_entityid = $as->getAuthData('saml:sp:IdP');
-	$idp_metadata = $metadata->getMetaData($idp_entityid, 'saml20-idp-remote');
-} else {
-	/*
-	 * from the local idp
-	 */
-	$idp_entityid = $local_idp_entityid;
-	$idp_metadata = $local_idp_metadata;
-}
-
-// Get user ID
-$userid_attributename = (isset($local_idp_metadata['userid.attribute']) && is_string($local_idp_metadata['userid.attribute'])) ? $local_idp_metadata['userid.attribute'] : 'eduPersonPrincipalName';
-
-$userids = $attributes[$userid_attributename];
-		
-if (empty($userids)) {
-	throw new Exception('Could not generate useridentifier for storing consent. Attribute [' .
-		$userid_attributename . '] was not available.');
-}
-
-$userid = $userids[0];
-
-// Get all SP metadata
-$all_sp_metadata = $metadata->getList('saml20-sp-remote');
-
-// Parse action, if any
-$action = null;
-$sp_entityid = null;
-if (!empty($_GET['cv'])) {
-	$sp_entityid=$_GET['cv'];
-}
-if (!empty($_GET['action'])) {
-	$action=$_GET["action"];
-}
-
-SimpleSAML_Logger::critical('consentAdmin: sp: ' .$sp_entityid.' action: '.$action);
-
-// Remove services, whitch have consent disabled
-if(isset($idp_metadata['consent.disable'])) {
-    foreach($idp_metadata['consent.disable'] AS $disable) {
-        if(array_key_exists($disable, $all_sp_metadata)) {
-            unset($all_sp_metadata[$disable]);
-        }
-    }
-}
-
-SimpleSAML_Logger::info('consentAdmin: '.$idp_entityid);
-
-// Calc correct source
-$source = $idp_metadata['metadata-set'] . '|' . $idp_entityid;
-
-// Parse consent config
-$consent_storage = sspmod_consent_Store::parseStoreConfig($cA_config->getValue('consentadmin'));
-
-// Calc correct user ID hash
-$hashed_user_id = sspmod_consent_Auth_Process_Consent::getHashedUserID($userid, $source);
-
-// If a checkbox have been clicked
-if ($action !== null && $sp_entityid !== null) {
-	// Get SP metadata
-	$sp_metadata = $metadata->getMetaData($sp_entityid, 'saml20-sp-remote');
-
-	// Run AuthProc filters
-	list($targeted_id, $attribute_hash, $attributes_new) = driveProcessingChain($idp_metadata, $source, $sp_metadata, $sp_entityid, $attributes, $userid, $hashAttributes);
-
-	// Add a consent (or update if attributes have changed and old consent for SP and IdP exists)
-	if($action == 'true') {
-		$isStored = $consent_storage->saveConsent($hashed_user_id, $targeted_id, $attribute_hash);
-		if($isStored) {
-			$res = "added";
-		} else {
-			$res = "updated";
-		}
-	// Remove consent
-	} else if($action == 'false') {
-		// Got consent, so this is a request to remove it
-		$rowcount = $consent_storage->deleteConsent($hashed_user_id, $targeted_id, $attribute_hash);
-		if($rowcount > 0) {
-			$res = "removed";
-		}
-	// Unknown action (should not happen)
-	} else {
-		SimpleSAML_Logger::info('consentAdmin: unknown action');
-		$res = "unknown";
-	}
-	/*
-	 * Init template to enable translation of status messages 
- 	 */
-	$et = new SimpleSAML_XHTML_Template($config, 'consentAdmin:consentadminajax.php', 'consentAdmin:consentadmin');
-	$et->data['res'] = $res;
-	$et->show();
-	exit;
-}
-
-// Get all consents for user
-$user_consent_list = $consent_storage->getConsents($hashed_user_id);
-
-// Parse list of consents
-$user_consent = array();
-foreach ($user_consent_list as $c) {
-	$user_consent[$c[0]]=$c[1];
-}
-
-$template_sp_content = array();
-
-// Init template
-$et = new SimpleSAML_XHTML_Template($config, 'consentAdmin:consentadmin.php', 'consentAdmin:consentadmin');
-$sp_empty_name = $et->getTag('sp_empty_name');
-$sp_empty_description = $et->getTag('sp_empty_description');
-
-// Process consents for all SP
-foreach ($all_sp_metadata as $sp_entityid => $sp_values) {
-	// Get metadata for SP
-	$sp_metadata = $metadata->getMetaData($sp_entityid, 'saml20-sp-remote');
-
-	// Run attribute filters
-	list($targeted_id, $attribute_hash, $attributes_new) = driveProcessingChain($idp_metadata, $source, $sp_metadata, $sp_entityid, $attributes, $userid, $hashAttributes);
-
-	// Check if consent exists
-	if (array_key_exists($targeted_id, $user_consent)) {
-		$sp_status = "changed";
-		SimpleSAML_Logger::info('consentAdmin: changed');
-		// Check if consent is valid. (Possible that attributes has changed)
-		if ($user_consent[$targeted_id] == $attribute_hash) {
-			SimpleSAML_Logger::info('consentAdmin: ok');
-			$sp_status = "ok";
-		}
-	// Consent does not exists
-	} else {
-		SimpleSAML_Logger::info('consentAdmin: none');
-		$sp_status = "none";
-	}
-
-	// Set name of SP
-	if(isset($sp_values['name']) && is_array($sp_values['name'])) {
-		$sp_name = $sp_metadata['name'];
-    } else if(isset($sp_values['name']) && is_string($sp_values['name'])) {
-		$sp_name = $sp_metadata['name'];
-	} elseif(isset($sp_values['OrganizationDisplayName']) && is_array($sp_values['OrganizationDisplayName'])) {
-		$sp_name = $sp_metadata['OrganizationDisplayName'];
-	} else {
-		$sp_name = $sp_empty_name;
-	}
-
-	// Set description of SP
-	if(empty($sp_metadata['description']) || !is_array($sp_metadata['description'])) {
-		$sp_description = $sp_empty_description;
-	} else {
-		$sp_description = $sp_metadata['description'];
-	}
-
-    // Add a URL to the service if present in metadata
-    $sp_service_url = isset($sp_metadata['ServiceURL']) ? $sp_metadata['ServiceURL'] : null;
-
-	// Fill out array for the template
-	$sp_list[$sp_entityid] = array(
-		'spentityid' => $sp_entityid,
-		'name' =>  $sp_name,
-		'description' =>  $sp_description,
-		'consentStatus' => $sp_status,
-		'consentValue' => $sp_entityid,
-		'attributes_by_sp' => $attributes_new,
-        'serviceurl' => $sp_service_url,
-	);
-}
-
-$et->data['header'] = 'Consent Administration';
-$et->data['spList'] = $sp_list;
-$et->data['showDescription'] = $cA_config->getValue('showDescription');
-$et->show();
+<?php
+/*
+ * consentAdmin - Consent administration module
+ *
+ * This module enables the user to add and remove consents given for a given
+ * Service Provider.
+ *
+ * The module relies on methods and functions from the Consent module and can
+ * not be user without it.
+ *
+ * Author: Mads Freek <freek@ruc.dk>, Jacob Christiansen <jach@wayf.dk>
+ */
+
+/*
+ * Runs the processing chain and ignores all filter which have user
+ * interaction.
+ */
+function driveProcessingChain(
+    $idp_metadata,
+    $source,
+    $sp_metadata,
+    $sp_entityid,
+    $attributes,
+    $userid,
+    $hashAttributes = false
+) {
+
+    /*
+     * Create a new processing chain
+     */
+    $pc = new SimpleSAML_Auth_ProcessingChain($idp_metadata, $sp_metadata, 'idp');
+
+    /*
+     * Construct the state.
+     * REMEMBER: Do not set Return URL if you are calling processStatePassive
+     */
+    $authProcState = array(
+        'Attributes'  => $attributes,
+        'Destination' => $sp_metadata,
+        'Source'      => $idp_metadata,
+        'isPassive'   => true,
+    );
+
+    /*
+     * Call processStatePAssive.
+     * We are not interested in any user interaction, only modifications to the attributes
+     */
+    $pc->processStatePassive($authProcState);
+
+    $attributes = $authProcState['Attributes'];
+
+    /*
+     * Generate identifiers and hashes
+     */
+    $destination = $sp_metadata['metadata-set'].'|'.$sp_entityid;
+
+    $targeted_id = sspmod_consent_Auth_Process_Consent::getTargetedID($userid, $source, $destination);
+    $attribute_hash = sspmod_consent_Auth_Process_Consent::getAttributeHash($attributes, $hashAttributes);
+
+    SimpleSAML_Logger::info('consentAdmin: user: '.$userid);
+    SimpleSAML_Logger::info('consentAdmin: target: '.$targeted_id);
+    SimpleSAML_Logger::info('consentAdmin: attribute: '.$attribute_hash);
+
+    /* Return values */
+    return array($targeted_id, $attribute_hash, $attributes);
+}
+
+// Get config object
+$config = SimpleSAML_Configuration::getInstance();
+$cA_config = SimpleSAML_Configuration::getConfig('module_consentAdmin.php');
+$authority = $cA_config->getValue('authority');
+
+$as = new SimpleSAML_Auth_Simple($authority);
+
+// If request is a logout request
+if (array_key_exists('logout', $_REQUEST)) {
+    $returnURL = $cA_config->getValue('returnURL');
+    $as->logout($returnURL);
+}
+
+$hashAttributes = $cA_config->getValue('attributes.hash');
+
+/* Check if valid local session exists */
+$as->requireAuth();
+
+// Get released attributes
+$attributes = $as->getAttributes();
+
+// Get metadata storage handler
+$metadata = SimpleSAML_Metadata_MetaDataStorageHandler::getMetadataHandler();
+
+/*
+ * Get IdP id and metadata
+ */
+
+
+$local_idp_entityid = $metadata->getMetaDataCurrentEntityID('saml20-idp-hosted');
+$local_idp_metadata = $metadata->getMetaData($local_idp_entityid, 'saml20-idp-hosted');
+
+if ($as->getAuthData('saml:sp:IdP') !== null) {
+    // from a remote idp (as bridge)
+    $idp_entityid = $as->getAuthData('saml:sp:IdP');
+    $idp_metadata = $metadata->getMetaData($idp_entityid, 'saml20-idp-remote');
+} else {
+    // from the local idp
+    $idp_entityid = $local_idp_entityid;
+    $idp_metadata = $local_idp_metadata;
+}
+
+// Get user ID
+$userid_attributename = (isset($local_idp_metadata['userid.attribute']) && is_string($local_idp_metadata['userid.attribute'])) ? $local_idp_metadata['userid.attribute'] : 'eduPersonPrincipalName';
+
+$userids = $attributes[$userid_attributename];
+
+if (empty($userids)) {
+    throw new Exception('Could not generate useridentifier for storing consent. Attribute ['.
+        $userid_attributename.'] was not available.');
+}
+
+$userid = $userids[0];
+
+// Get all SP metadata
+$all_sp_metadata = $metadata->getList('saml20-sp-remote');
+
+// Parse action, if any
+$action = null;
+$sp_entityid = null;
+if (!empty($_GET['cv'])) {
+    $sp_entityid = $_GET['cv'];
+}
+if (!empty($_GET['action'])) {
+    $action = $_GET["action"];
+}
+
+SimpleSAML_Logger::critical('consentAdmin: sp: '.$sp_entityid.' action: '.$action);
+
+// Remove services, whitch have consent disabled
+if (isset($idp_metadata['consent.disable'])) {
+    foreach ($idp_metadata['consent.disable'] AS $disable) {
+        if (array_key_exists($disable, $all_sp_metadata)) {
+            unset($all_sp_metadata[$disable]);
+        }
+    }
+}
+
+SimpleSAML_Logger::info('consentAdmin: '.$idp_entityid);
+
+// Calc correct source
+$source = $idp_metadata['metadata-set'].'|'.$idp_entityid;
+
+// Parse consent config
+$consent_storage = sspmod_consent_Store::parseStoreConfig($cA_config->getValue('consentadmin'));
+
+// Calc correct user ID hash
+$hashed_user_id = sspmod_consent_Auth_Process_Consent::getHashedUserID($userid, $source);
+
+// If a checkbox have been clicked
+if ($action !== null && $sp_entityid !== null) {
+    // Get SP metadata
+    $sp_metadata = $metadata->getMetaData($sp_entityid, 'saml20-sp-remote');
+
+    // Run AuthProc filters
+    list($targeted_id, $attribute_hash, $attributes_new) = driveProcessingChain($idp_metadata, $source, $sp_metadata,
+        $sp_entityid, $attributes, $userid, $hashAttributes);
+
+    // Add a consent (or update if attributes have changed and old consent for SP and IdP exists)
+    if ($action == 'true') {
+        $isStored = $consent_storage->saveConsent($hashed_user_id, $targeted_id, $attribute_hash);
+        if ($isStored) {
+            $res = "added";
+        } else {
+            $res = "updated";
+        }
+        // Remove consent
+    } else {
+        if ($action == 'false') {
+            // Got consent, so this is a request to remove it
+            $rowcount = $consent_storage->deleteConsent($hashed_user_id, $targeted_id, $attribute_hash);
+            if ($rowcount > 0) {
+                $res = "removed";
+            }
+            // Unknown action (should not happen)
+        } else {
+            SimpleSAML_Logger::info('consentAdmin: unknown action');
+            $res = "unknown";
+        }
+    }
+    // init template to enable translation of status messages
+    $et = new SimpleSAML_XHTML_Template($config, 'consentAdmin:consentadminajax.php', 'consentAdmin:consentadmin');
+    $et->data['res'] = $res;
+    $et->show();
+    exit;
+}
+
+// Get all consents for user
+$user_consent_list = $consent_storage->getConsents($hashed_user_id);
+
+// Parse list of consents
+$user_consent = array();
+foreach ($user_consent_list as $c) {
+    $user_consent[$c[0]] = $c[1];
+}
+
+$template_sp_content = array();
+
+// Init template
+$et = new SimpleSAML_XHTML_Template($config, 'consentAdmin:consentadmin.php', 'consentAdmin:consentadmin');
+$sp_empty_name = $et->getTag('sp_empty_name');
+$sp_empty_description = $et->getTag('sp_empty_description');
+
+// Process consents for all SP
+foreach ($all_sp_metadata as $sp_entityid => $sp_values) {
+    // Get metadata for SP
+    $sp_metadata = $metadata->getMetaData($sp_entityid, 'saml20-sp-remote');
+
+    // Run attribute filters
+    list($targeted_id, $attribute_hash, $attributes_new) = driveProcessingChain($idp_metadata, $source, $sp_metadata,
+        $sp_entityid, $attributes, $userid, $hashAttributes);
+
+    // Check if consent exists
+    if (array_key_exists($targeted_id, $user_consent)) {
+        $sp_status = "changed";
+        SimpleSAML_Logger::info('consentAdmin: changed');
+        // Check if consent is valid. (Possible that attributes has changed)
+        if ($user_consent[$targeted_id] == $attribute_hash) {
+            SimpleSAML_Logger::info('consentAdmin: ok');
+            $sp_status = "ok";
+        }
+        // Consent does not exists
+    } else {
+        SimpleSAML_Logger::info('consentAdmin: none');
+        $sp_status = "none";
+    }
+
+    // Set name of SP
+    if (isset($sp_values['name']) && is_array($sp_values['name'])) {
+        $sp_name = $sp_metadata['name'];
+    } else {
+        if (isset($sp_values['name']) && is_string($sp_values['name'])) {
+            $sp_name = $sp_metadata['name'];
+        } elseif (isset($sp_values['OrganizationDisplayName']) && is_array($sp_values['OrganizationDisplayName'])) {
+            $sp_name = $sp_metadata['OrganizationDisplayName'];
+        } else {
+            $sp_name = $sp_empty_name;
+        }
+    }
+
+    // Set description of SP
+    if (empty($sp_metadata['description']) || !is_array($sp_metadata['description'])) {
+        $sp_description = $sp_empty_description;
+    } else {
+        $sp_description = $sp_metadata['description'];
+    }
+
+    // Add a URL to the service if present in metadata
+    $sp_service_url = isset($sp_metadata['ServiceURL']) ? $sp_metadata['ServiceURL'] : null;
+
+    // Fill out array for the template
+    $sp_list[$sp_entityid] = array(
+        'spentityid'       => $sp_entityid,
+        'name'             => $sp_name,
+        'description'      => $sp_description,
+        'consentStatus'    => $sp_status,
+        'consentValue'     => $sp_entityid,
+        'attributes_by_sp' => $attributes_new,
+        'serviceurl'       => $sp_service_url,
+    );
+}
+
+$et->data['header'] = 'Consent Administration';
+$et->data['spList'] = $sp_list;
+$et->data['showDescription'] = $cA_config->getValue('showDescription');
+$et->show();
diff --git a/modules/consentSimpleAdmin/www/consentAdmin.php b/modules/consentSimpleAdmin/www/consentAdmin.php
index cb7aa80f36d295bff7049c2a075dfde87019a6d1..1c576e9e486c7cefc8dac8a4a1b4f5f64527778d 100644
--- a/modules/consentSimpleAdmin/www/consentAdmin.php
+++ b/modules/consentSimpleAdmin/www/consentAdmin.php
@@ -1,91 +1,87 @@
-<?php
-/*
- * consentSimpleAdmin - Simple Consent administration module
- *
- * This module is a simplification of the danish consent administration module.
- *
- * @author Andreas Ă…kre Solberg <andreas.solberg@uninett.no>
- * @author Mads Freen - WAYF
- * @author Jacob Christiansen - WAYF
- * @package simpleSAMLphp
- */
-
-
-// Get config object
-$config = SimpleSAML_Configuration::getInstance();
-$consentconfig = SimpleSAML_Configuration::getConfig('module_consentSimpleAdmin.php');
-
-$as = $consentconfig->getValue('auth');
-$as = new SimpleSAML_Auth_Simple($as);
-$as->requireAuth();
-
-// Get all attributes
-$attributes = $as->getAttributes();
-
-
-
-// Get user ID
-$userid_attributename = $consentconfig->getValue('userid', 'eduPersonPrincipalName');
-if (empty($attributes[$userid_attributename])) {
-	throw new Exception('Could not generate useridentifier for storing consent. Attribute [' .
-		$userid_attributename . '] was not available.');
-}
-
-$userid = $attributes[$userid_attributename][0];
-
-// Get metadata storage handler
-$metadata = SimpleSAML_Metadata_MetaDataStorageHandler::getMetadataHandler();
-
-/*
- * Get IdP id and metadata
- */
-if($as->getAuthData('saml:sp:IdP') !== null) {
-	// From a remote idp (as bridge)
-	$idp_entityid = $as->getAuthData('saml:sp:IdP');
-	$idp_metadata = $metadata->getMetaData($idp_entityid, 'saml20-idp-remote');
-} else {
-	// from the local idp
-	$idp_entityid = $metadata->getMetaDataCurrentEntityID('saml20-idp-hosted');
-	$idp_metadata = $metadata->getMetaData($idp_entityid, 'saml20-idp-hosted');
-}
- 
-SimpleSAML_Logger::debug('consentAdmin: IdP is ['.$idp_entityid . ']');
-
-$source = $idp_metadata['metadata-set'] . '|' . $idp_entityid;
-
-
-// Parse consent config
-$consent_storage = sspmod_consent_Store::parseStoreConfig($consentconfig->getValue('store'));
-
-// Calc correct user ID hash
-$hashed_user_id = sspmod_consent_Auth_Process_Consent::getHashedUserID($userid, $source);
-
-
-
-// Check if button with withdraw all consent was clicked.
-if (array_key_exists('withdraw', $_REQUEST)) {
-	
-	SimpleSAML_Logger::info('consentAdmin: UserID ['.$hashed_user_id . '] has requested to withdraw all consents given...');
-	
-	$consent_storage->deleteAllConsents($hashed_user_id);
-	
-}
-
-
-
-// Get all consents for user
-$user_consent_list = $consent_storage->getConsents($hashed_user_id);
-
-$consentServices = array();
-foreach($user_consent_list AS $c) $consentServices[$c[1]] = 1;
-
-SimpleSAML_Logger::debug('consentAdmin: no of consents [' . count($user_consent_list) . '] no of services [' . count($consentServices) . ']');
-
-// Init template
-$t = new SimpleSAML_XHTML_Template($config, 'consentSimpleAdmin:consentadmin.php');
-
-$t->data['consentServices'] = count($consentServices);
-$t->data['consents'] = count($user_consent_list);
-
-
-$t->show();
+<?php
+/*
+ * consentSimpleAdmin - Simple Consent administration module
+ *
+ * This module is a simplification of the danish consent administration module.
+ *
+ * @author Andreas Ă…kre Solberg <andreas.solberg@uninett.no>
+ * @author Mads Freek - WAYF
+ * @author Jacob Christiansen - WAYF
+ * @package SimpleSAMLphp
+ */
+
+
+// Get config object
+$config = SimpleSAML_Configuration::getInstance();
+$consentconfig = SimpleSAML_Configuration::getConfig('module_consentSimpleAdmin.php');
+
+$as = $consentconfig->getValue('auth');
+$as = new SimpleSAML_Auth_Simple($as);
+$as->requireAuth();
+
+// Get all attributes
+$attributes = $as->getAttributes();
+
+
+// Get user ID
+$userid_attributename = $consentconfig->getValue('userid', 'eduPersonPrincipalName');
+if (empty($attributes[$userid_attributename])) {
+    throw new Exception('Could not generate useridentifier for storing consent. Attribute ['.
+        $userid_attributename.'] was not available.');
+}
+
+$userid = $attributes[$userid_attributename][0];
+
+// Get metadata storage handler
+$metadata = SimpleSAML_Metadata_MetaDataStorageHandler::getMetadataHandler();
+
+// Get IdP id and metadata
+if ($as->getAuthData('saml:sp:IdP') !== null) {
+    // From a remote idp (as bridge)
+    $idp_entityid = $as->getAuthData('saml:sp:IdP');
+    $idp_metadata = $metadata->getMetaData($idp_entityid, 'saml20-idp-remote');
+} else {
+    // from the local idp
+    $idp_entityid = $metadata->getMetaDataCurrentEntityID('saml20-idp-hosted');
+    $idp_metadata = $metadata->getMetaData($idp_entityid, 'saml20-idp-hosted');
+}
+
+SimpleSAML_Logger::debug('consentAdmin: IdP is ['.$idp_entityid.']');
+
+$source = $idp_metadata['metadata-set'].'|'.$idp_entityid;
+
+
+// Parse consent config
+$consent_storage = sspmod_consent_Store::parseStoreConfig($consentconfig->getValue('store'));
+
+// Calc correct user ID hash
+$hashed_user_id = sspmod_consent_Auth_Process_Consent::getHashedUserID($userid, $source);
+
+
+// Check if button with withdraw all consent was clicked.
+if (array_key_exists('withdraw', $_REQUEST)) {
+
+    SimpleSAML_Logger::info('consentAdmin: UserID ['.$hashed_user_id.'] has requested to withdraw all consents given...');
+
+    $consent_storage->deleteAllConsents($hashed_user_id);
+}
+
+
+// Get all consents for user
+$user_consent_list = $consent_storage->getConsents($hashed_user_id);
+
+$consentServices = array();
+foreach ($user_consent_list AS $c) {
+    $consentServices[$c[1]] = 1;
+}
+
+SimpleSAML_Logger::debug('consentAdmin: no of consents ['.count($user_consent_list).'] no of services ['.count($consentServices).']');
+
+// Init template
+$t = new SimpleSAML_XHTML_Template($config, 'consentSimpleAdmin:consentadmin.php');
+
+$t->data['consentServices'] = count($consentServices);
+$t->data['consents'] = count($user_consent_list);
+
+
+$t->show();