123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <?php
- class PortalDispatcher
- {
- protected $sPortalid;
- protected $aData;
-
- public function __construct($sPortalId)
- {
- $this->sPortalid = $sPortalId;
- $this->aData = PortalDispatcherData::GetData($sPortalId);
- }
-
- public function IsUserAllowed()
- {
- $bRet = true;
- $aProfiles = UserRights::ListProfiles();
-
- foreach($this->aData['deny'] as $sDeniedProfile)
- {
- // If one denied profile is present, it's enough => return false
- if (in_array($sDeniedProfile, $aProfiles))
- {
- return false;
- }
- }
- // If there are some "allow" profiles, then by default the result is false
- // since the user must have at least one of the profiles to be allowed
- if (count($this->aData['allow']) > 0)
- {
- $bRet = false;
- }
- foreach($this->aData['allow'] as $sAllowProfile)
- {
- // If one "allow" profile is present, it's enough => return true
- if (in_array($sAllowProfile, $aProfiles))
- {
- return true;
- }
- }
- return $bRet;
- }
-
- public function GetURL()
- {
- $aOverloads = MetaModel::GetConfig()->Get('portal_dispatch_urls');
- if (array_key_exists($this->sPortalid, $aOverloads))
- {
- $sRet = $aOverloads[$this->sPortalid];
- }
- else
- {
- $sRet = utils::GetAbsoluteUrlAppRoot().$this->aData['url'];
- }
- return $sRet;
- }
-
- public function GetLabel()
- {
- return Dict::S('portal:'.$this->sPortalid);
- }
-
- public function GetRank()
- {
- return $this->aData['rank'];
- }
- }
|