diff --git a/app/Http/Controllers/AttrReleaseTestController.php b/app/Http/Controllers/AttrReleaseTestController.php index b2a7ec1da965a05780cceab1752bdb63374d6b60..9ffe61700eef7b441f0c7a579e4d3c63b24c43d7 100755 --- a/app/Http/Controllers/AttrReleaseTestController.php +++ b/app/Http/Controllers/AttrReleaseTestController.php @@ -8,8 +8,11 @@ use Illuminate\Http\Request; class AttrReleaseTestController extends Controller { /** - * Initiates the test - * + * Initiates the attribute release test + * + * @param Request $request + * + * @return Redirect */ public function __invoke(Request $request) { diff --git a/app/Http/Controllers/ResultsController.php b/app/Http/Controllers/ResultsController.php index 31ee41e629eb78f6654849a95e49a07189243067..0d092b67f303d375cec672547f0b357fda1f0a3a 100755 --- a/app/Http/Controllers/ResultsController.php +++ b/app/Http/Controllers/ResultsController.php @@ -12,7 +12,12 @@ use Illuminate\Http\Request; class ResultsController extends Controller { /** - * Show Results. + * Show verdict for Idp + * + * @param Request $request + * @param mixed $test_id + * + * @return Response */ public function __invoke(Request $request, $test_id) { @@ -77,6 +82,11 @@ class ResultsController extends Controller } } + /** + * Retrieve and parse test log for all entities. + * + * @return array + */ public function getHistoricalResults() { $idps = IdpResult::all()->unique('idp_entity_id'); @@ -109,6 +119,14 @@ class ResultsController extends Controller return $historical_results; } + /** + * Retrieve and parse test log for single entity + * + * @param Request $request + * @param mixed $idp_entity_id + * + * @return array + */ public function getSingleHistoricalResult(Request $request, $idp_entity_id) { $idp_entity_id = urldecode($idp_entity_id); diff --git a/app/Http/Controllers/ServiceProviderController.php b/app/Http/Controllers/ServiceProviderController.php index ecae996342e89da6f1f479c647034ba3c869296c..aa90a5eef8438c2d9065e9b216e08ea08f1ca8d7 100755 --- a/app/Http/Controllers/ServiceProviderController.php +++ b/app/Http/Controllers/ServiceProviderController.php @@ -15,7 +15,10 @@ class ServiceProviderController extends Controller { /** * Handles the SP part - * + * + * @param Request $request + * + * @return Redirect */ public function __invoke(Request $request) { @@ -52,6 +55,16 @@ class ServiceProviderController extends Controller } } + /** + * Parse and store test results. + * - retrieve and store IdP info + * - store eduPersonTargetedID attributes info + * - store obtained score + * + * @param mixed $request + * + * @return string + */ private function store_results($request){ //Store the attributes $idp_entity_id = $request->server->get('SHIB_Shib-Identity-Provider'); diff --git a/app/Libraries/EarcUtils.php b/app/Libraries/EarcUtils.php index f10064d56701c23ddbb874e1c292b9de2e36eebd..2ff841bc9700dad6ec7a22c7a1b221c75f30629c 100755 --- a/app/Libraries/EarcUtils.php +++ b/app/Libraries/EarcUtils.php @@ -7,6 +7,13 @@ use SimpleSAML\Module\metarefresh\MetaLoader; class EarcUtils { + /** + * Return user friendly name of checked categories + * + * @param mixed $value + * + * @return string + */ public function getEncatName($value) { switch ($value) { @@ -23,6 +30,13 @@ class EarcUtils return $ret; } + /** + * Retrieve metadata of SP entity by ID from metadata files in SimpleSAMLphp + * + * @param mixed $sp_entity_id_input + * + * @return array + */ public static function getSpMetadata($sp_entity_id_input) { include Configuration::getInstance()->getPathValue('attributenamemapdir', 'attributemap/').'oid2name.php'; @@ -68,6 +82,11 @@ class EarcUtils } } + /** + * Parse attribute OID to hunam readable attributes + * + * @return array + */ public static function getAttributeMap() { include Configuration::getInstance()->getPathValue('attributenamemapdir', 'attributemap/').'oid2name.php'; @@ -75,6 +94,13 @@ class EarcUtils return $attributemap; } + /** + * Retrieve metadata of IdP entity by ID from metadata files in SimpleSAMLphp + * + * @param mixed $entityid + * + * @return array + */ public static function getIdpMetadata($entityid) { $metaloader = new MetaLoader(null); @@ -87,6 +113,13 @@ class EarcUtils return $metadata[$entityid]; } + /** + * Get IdP Name from metadata files in SimpleSAMLphp + * + * @param mixed $entityid + * + * @return string + */ public static function getIdentityProviderName($entityid) { $idp_metadata = self::getIdpMetadata($entityid); @@ -104,6 +137,13 @@ class EarcUtils } } + /** + * Check research-and-scholarship support on IdP entity + * + * @param mixed $idp_metadata + * + * @return bool + */ public static function isRnsSupportIndicated($idp_metadata) { $ret = false; @@ -118,6 +158,13 @@ class EarcUtils return $ret; } + /** + * Check research-and-scholarship support on SP entity + * + * @param mixed $sp_metadata + * + * @return bool + */ public static function isRnsIndicated($sp_metadata) { $ret = false; @@ -132,6 +179,14 @@ class EarcUtils return $ret; } + /** + * Check eduPerson mail based or schacHomeOrganizationType attributes returned value + * + * @param mixed $attributeName + * @param mixed $attributeValue + * + * @return mixed + */ public static function checkAttributeSyntax($attributeName, $attributeValue) { $failed = array(); @@ -151,6 +206,13 @@ class EarcUtils } } + /** + * Check minimal sufficient set of released attributes + * + * @param mixed $released_attributes + * + * @return bool + */ public static function isMinimalSubsetSent($released_attributes) { $minimalSubset = array('eduPersonPrincipalName', 'mail', 'displayName'); @@ -163,6 +225,13 @@ class EarcUtils return true; } + /** + * Check basic set of released attributes + * + * @param mixed $released_attributes + * + * @return bool + */ public static function isBasicSubsetSent($released_attributes) { $minimalSubset = array('eduPersonPrincipalName', 'eduPersonTargetedID', 'eduPersonUniqueId'); @@ -175,6 +244,14 @@ class EarcUtils return false; } + /** + * Check attributes redundancy + * + * @param mixed $attributeName + * @param mixed $released_attributes + * + * @return bool + */ public static function canBeRedundant($attributeName, $released_attributes) { if (($attributeName == 'schacHomeOrganization' && (array_key_exists('eduPersonPrincipalName', $released_attributes) || array_key_exists('eduPersonScopedAffiliation', $released_attributes))) || @@ -194,6 +271,18 @@ class EarcUtils } } + /** + * Additional analysis of released attributes for more precise evaluation + * + * @param mixed $mark + * @param mixed $sp + * @param mixed $released_attributes + * @param mixed $superfluous_attributes + * @param mixed $idp_metadata + * @param mixed $non_personal_attributes + * + * @return string + */ public static function getExtraPoints($mark, $sp, $released_attributes, $superfluous_attributes, $idp_metadata, $non_personal_attributes) { $ret = ''; @@ -259,6 +348,15 @@ class EarcUtils } } + /** + * Released attributes analysis and verdict calculation + * + * @param mixed $sp_entity_id + * @param mixed $released_attributes + * @param mixed $idp_entityid + * + * @return array + */ public static function calculateVerdictForAnSP($sp_entity_id, $released_attributes, $idp_entityid) { $additional_information = array();