getApp() public method

Return the current application - the app at the top of the application stack.
public getApp ( ) : string
return string The current application.
示例#1
0
文件: Perms.php 项目: horde/horde
 /**
  * Finds out if the user has the specified rights to the given object,
  * specific to a certain application.
  *
  * @param string $permission  The permission to check.
  * @param array $opts         Additional options:
  * <pre>
  * 'app' - (string) The app to check.
  *         DEFAULT: The current pushed app.
  * 'opts' - (array) Additional options to pass to the app function.
  *          DEFAULT: None
  * </pre>
  *
  * @return mixed  The specified permissions.
  */
 public function hasAppPermission($permission, $opts = array())
 {
     $app = isset($opts['app']) ? $opts['app'] : $this->_registry->getApp();
     if ($this->_perms->exists($app . ':' . $permission)) {
         $perms = $this->_perms->getPermissions($app . ':' . $permission, $this->_registry->getAuth());
         if ($perms === false) {
             return false;
         }
         $args = array($permission, $perms, isset($opts['opts']) ? $opts['opts'] : array());
         try {
             return $this->_registry->callAppMethod($app, 'hasPermission', array('args' => $args));
         } catch (Horde_Exception $e) {
         }
     }
     return true;
 }
示例#2
0
 /**
  * Constructor.
  *
  * @param Horde_Registry $reg_ob  Registry object.
  *
  * @throws Horde_Exception
  */
 public function __construct($reg_ob)
 {
     /* Read the registry configuration files. */
     if (!file_exists(HORDE_BASE . '/config/registry.php')) {
         throw new Horde_Exception('Missing registry.php configuration file');
     }
     /* Set textdomain to Horde, so that we really only load translations
      * from Horde. */
     $app = $reg_ob->getApp();
     if ($app != 'horde') {
         textdomain('horde');
     }
     require HORDE_BASE . '/config/registry.php';
     if ($files = glob(HORDE_BASE . '/config/registry.d/*.php')) {
         foreach ($files as $r) {
             include $r;
         }
     }
     if (file_exists(HORDE_BASE . '/config/registry.local.php')) {
         include HORDE_BASE . '/config/registry.local.php';
     }
     if ($reg_ob->vhost) {
         include $reg_ob->vhost;
     }
     /* Reset textdomain. */
     if ($app != 'horde') {
         textdomain($app);
     }
     if (!isset($this->applications['horde']['fileroot'])) {
         $this->applications['horde']['fileroot'] = isset($app_fileroot) ? $app_fileroot : HORDE_BASE;
     }
     if (!isset($app_fileroot)) {
         $app_fileroot = $this->applications['horde']['fileroot'];
     }
     /* Make sure the fileroot of Horde has a trailing slash to not trigger
      * open_basedir restrictions that have that trailing slash too. */
     $app_fileroot = rtrim($app_fileroot, '/') . '/';
     if (!isset($this->applications['horde']['webroot'])) {
         $this->applications['horde']['webroot'] = isset($app_webroot) ? $app_webroot : $this->_detectWebroot();
     }
     if (!isset($app_webroot)) {
         $app_webroot = $this->applications['horde']['webroot'];
     }
     if (!isset($this->applications['horde']['staticfs'])) {
         $this->applications['horde']['staticfs'] = $this->applications['horde']['fileroot'] . '/static';
     }
     if (!isset($this->applications['horde']['staticuri'])) {
         $this->applications['horde']['staticuri'] = $this->applications['horde']['webroot'] . '/static';
     }
     /* Scan for all APIs provided by each app, and set other common
      * defaults like templates and graphics. */
     foreach ($this->applications as $appName => &$app) {
         if (!isset($app['status'])) {
             $app['status'] = 'active';
         } elseif ($app['status'] == 'heading' || $app['status'] == 'topbar' || $app['status'] == 'link') {
             continue;
         }
         $app['fileroot'] = isset($app['fileroot']) ? rtrim($app['fileroot'], ' /') : $app_fileroot . $appName;
         if (!isset($app['name'])) {
             $app['name'] = '';
         }
         if (!file_exists($app['fileroot']) || !$reg_ob->isTest() && file_exists($app['fileroot'] . '/config/conf.xml') && !file_exists($app['fileroot'] . '/config/conf.php')) {
             $app['status'] = 'inactive';
             Horde::log('Setting ' . $appName . ' inactive because the fileroot does not exist or the application is not configured yet.', 'DEBUG');
         }
         $app['webroot'] = isset($app['webroot']) ? rtrim($app['webroot'], ' /') : $app_webroot . '/' . $appName;
         if ($app['status'] != 'inactive' && isset($app['provides']) && ($app['status'] != 'admin' || $reg_ob->isAdmin())) {
             if (is_array($app['provides'])) {
                 foreach ($app['provides'] as $interface) {
                     $this->interfaces[$interface] = $appName;
                 }
             } else {
                 $this->interfaces[$app['provides']] = $appName;
             }
         }
         if (!isset($app['templates']) && isset($app['fileroot'])) {
             $app['templates'] = $app['fileroot'] . '/templates';
         }
         if (!isset($app['jsuri']) && isset($app['webroot'])) {
             $app['jsuri'] = $app['webroot'] . '/js';
         }
         if (!isset($app['jsfs']) && isset($app['fileroot'])) {
             $app['jsfs'] = $app['fileroot'] . '/js';
         }
         if (!isset($app['themesuri']) && isset($app['webroot'])) {
             $app['themesuri'] = $app['webroot'] . '/themes';
         }
         if (!isset($app['themesfs']) && isset($app['fileroot'])) {
             $app['themesfs'] = $app['fileroot'] . '/themes';
         }
     }
 }