Exemplo n.º 1
0
 protected static function initializeUser()
 {
     Logging::log('Loading user');
     try {
         Logging::log('is this logout?');
         if (self::getRequest()->getParameter('logout')) {
             Logging::log('yes');
             self::logout();
         } else {
             Logging::log('no');
             Logging::log('sets up user object');
             $event = Event::createNew('core', 'pre_login');
             $event->trigger();
             if ($event->isProcessed()) {
                 self::loadUser($event->getReturnValue());
             } elseif (!self::isCLI()) {
                 self::loadUser();
             } else {
                 self::$_user = new User();
             }
             Event::createNew('core', 'post_login', self::getUser())->trigger();
             Logging::log('loaded');
             Logging::log('caching permissions');
             self::cacheAllPermissions();
             Logging::log('done (caching permissions)');
         }
     } catch (exceptions\ElevatedLoginException $e) {
         Logging::log("Could not reauthenticate elevated permissions: " . $e->getMessage(), 'main', Logging::LEVEL_INFO);
         self::setMessage('elevated_login_message_err', $e->getMessage());
         self::$_redirect_login = '******';
     } catch (\Exception $e) {
         Logging::log("Something happened while setting up user: " . $e->getMessage(), 'main', Logging::LEVEL_WARNING);
         $is_anonymous_route = self::isCLI() || self::getRouting()->isCurrentRouteAnonymousRoute();
         if (!$is_anonymous_route) {
             self::setMessage('login_message_err', $e->getMessage());
             self::$_redirect_login = '******';
         } else {
             self::$_user = User::getB2DBTable()->selectById(Settings::getDefaultUserID());
         }
     }
     Logging::log('...done');
 }