NPE catched, command class added, beter coding practice applied:
[core.git] / inc / classes / main / commands / web / class_WebConfirmCommand.php
index 5158794d337700d6d9aa97dc0c67e1c486581fec..220ae5ce60d3aaae0965fb85b137d678f0f5ca23 100644 (file)
@@ -99,11 +99,20 @@ class WebConfirmCommand extends BaseCommand implements Commandable {
                $templateInstance->assignVariable('title', $this->getLanguageInstance()->getMessage('page_confirm_link_title'));
 
                // Get user instance
-               $userInstance = Registry::getRegistry()->getInstance('user');
+               try {
+                       $userInstance = Registry::getRegistry()->getInstance('user');
+               } catch (NullPointerException $e) {
+                       // Not found user, e.g. when the user is somehow invalid
+                       $responseInstance->redirectToConfiguredUrl('web_cmd_user_is_null');
+               }
 
                // Set username
                $templateInstance->assignVariable('username', $userInstance->getField(UserDatabaseWrapper::DB_COLUMN_USERNAME));
 
+               // Construct the menu in every command. We could do this in BaseCommand class. But this means
+               // *every* command has a navigation system and that is want we don't want.
+               $menuInstance = ObjectFactory::createObjectByConfiguredName('confirm_menu_class', array($appInstance));
+
                // ... and all variables. This should be merged together in a pattern
                // to make things easier. A cache mechanism should be added between
                // these two calls to cache compiled templates.