/** * @return bool */ public function htmlBuildResult() { $ela = array(); foreach( CacheApplicationTool::clusterApplications() as $app ) { if ( $app->applicationObject->applicationType->attribute('type_identifier') == 'e-learning' && $app->getCustomParameter('HasLearningTracker') && ApplicationFactory::fetchByUri($app->attribute('url_alias'))->canRead() ) { $ela[] = array( 'headline' => $app->headline, 'url' => $app->applicationUrl(), ); } } $this->pushResult( 'ela', $ela ); $this->pushResult( 'content_service_configuration', $this->applicationObject->configurationContentService ); $this->pushResult( 'is_mobile', ContextTool::instance()->isMobile() ); $this->pushResult( 'isApplicationAllowedToUser', MMLimitedApplicationsAllowedUsers::hasCurrentUserAccessToApp(CacheApplicationTool::buildLocalizedApplicationByIdentifier('learning-needs-assessment')->application_id) ); $uuid = $this->user()->attribute('uuid'); $this->pushResult( 'userId', $uuid ); //LNA Dashboard url $lmtBaseUrl = SolrSafeOperatorHelper::feature('LearningNeedsAssessment', 'LMTBaseUrl'); $lmtPrefix = SolrSafeOperatorHelper::feature('LearningNeedsAssessment', 'LMTPrefix'); $this->pushResult( 'dashboardUrl', $lmtBaseUrl . $lmtPrefix ); $environment = new MMEnvironment(); $this->pushResult( 'environment', $environment->env ); $userData = CertificatesWebservice::readUserData(); $this->pushResult( 'companyCode', $userData['CID'] ); $countryPrefix = preg_replace( "~cluster|_~", "", ClusterTool::clusterIdentifier() ); $this->pushResult( 'dashBoardCountryPrefix', strtolower( $countryPrefix ) . '_' ); parent::htmlBuildResult(); return true; }
/** * @return bool */ public function canRead(array $params) { $isPublic = $params['isPublic']; $isFull = $params['isFull']; $restrictionLevel = $this->applicationLocalized->restrictionLevel(); if( $restrictionLevel == ApplicationObject::RESTRICTION_LEVEL_LIMITED) { $id = MMUsers::getCurrentUserId(); $authorizedUsers = MMLimitedApplicationsAllowedUsers::fetchAllowedUsersByApplication($this->applicationLocalized->application_id); if(empty($authorizedUsers) || !in_array($id, $authorizedUsers)){ return false; } else { return true; } } $allowsPublicView = $this->getApplicationCustomParamater('allowsPublicView'); if( $isPublic && $allowsPublicView && MMUserHeader::tokenExists( isset( $_GET['t'] ) ? $_GET['t'] : false ) != null) { return true; } elseif( $isPublic ) { return false; } if( !BlockDefault::user() || // or if ToU not validated ( (bool)BlockDefault::user() && !BlockDefault::user()->toUValidated() && BlockDefault::iniMerck()->hasVariable( 'LoginSettings', 'ToUCheck' ) && BlockDefault::iniMerck()->variable( 'LoginSettings', 'ToUCheck') != 'disabled' ) ) { return !$isFull; } return null; }
private function buildResultList() { $applications = array(); $applicationIds = array(); $applicationsByName = array(); foreach( CountryApplicationLibrary::fetchAuthorizedApplicationIds() as $appId ) { if( $appId == 0 ) continue; $applicationLocalized = CacheApplicationTool::buildLocalizedApplicationByApplication( $appId ); if( !($applicationLocalized instanceof ApplicationLocalized) ) continue; // Hack : Temporary patch to override in localized application the mm_application.parent_id if ( $applicationLocalized->getCustomParameter('DirectAccessDisable') === true ) continue; if( (bool)$applicationLocalized->applicationObject->attribute('application_library') ) { if($applicationLocalized->restrictionLevel() == ApplicationObject::RESTRICTION_LEVEL_LIMITED) { if(MMLimitedApplicationsAllowedUsers::hasCurrentUserAccessToApp($applicationLocalized->application_id)) { $applications[] = $applicationLocalized->applicationObject; $applicationIds[] = $appId; } } else { $applications[] = $applicationLocalized->applicationObject; $applicationIds[] = $appId; } } } /* @var $app ApplicationObject */ foreach( $applications as $k => $app ) $applicationsByName[$app->applicationLocalized()->attribute('headline')] = $app; uksort( $applicationsByName, function($a, $b){ return strnatcasecmp($a, $b); }); // display all applications $this->pushResult('application_ids' , $applicationIds); $this->pushResult('applications_by_name', $applicationsByName); // for anonymous users $ids = CountryAppsBar::fetchAppsBarApplicationIds(); $applications_anonymous = array(); foreach($ids as $id) $applications_anonymous[] = (string)$id; $this->pushResult('applications_anonymous', $applications_anonymous); // banners $banners = array(); $base = $this->applicationLocalized()->applicationUrl().'/'; /* @var $application ApplicationObject */ /* @var $homepageApplication MMHomePage */ $homepageApplication = ApplicationFactory::fetchByUri('/'); foreach( $homepageApplication->getAppsToAdd() as $application ) { $bannerFiles = $application->applicationLocalized()->getBanners(); if (is_array($bannerFiles) && !is_null($bannerFiles['big']) && !is_null($bannerFiles['small'])) { $banners[] = array( 'id' => $this->applicationLocalized()->attribute('id'), 'img' => SolrSafeOperatorHelper::bannerDecHash('/esibuild/banner/'.$application->attribute( 'identifier' ).'/big/'.ClusterTool::clusterIdentifier().'.png'), 'img_small' => SolrSafeOperatorHelper::bannerDecHash('/esibuild/banner/'.$application->attribute( 'identifier' ).'/small/'.ClusterTool::clusterIdentifier().'.png'), 'label' => $application->applicationLocalized()->attribute('headline'), 'url' => $base . $application->applicationLocalized()->attribute('url'), ); } if( count($banners) >= self::BANNER_ITEMS_LIMIT ) break; } $this->pushResult('banners', $banners); }