001 package com.khubla.pragmatach.plugin.adminapp;
002
003 import com.khubla.pragmatach.framework.annotation.Controller;
004 import com.khubla.pragmatach.framework.annotation.Route;
005 import com.khubla.pragmatach.framework.api.PragmatachException;
006 import com.khubla.pragmatach.framework.api.Response;
007 import com.khubla.pragmatach.plugin.freemarker.FreemarkerController;
008
009 /**
010 * @author tome
011 */
012 @Controller(name = "pragmatachBaseAdminController")
013 public class BaseAdminController extends FreemarkerController {
014 /**
015 * the cookie names
016 */
017 public static final String USERID = "adminUserId";
018 public static final String PASSWORD = "adminPassword";
019
020 /**
021 * check if user is logged in
022 */
023 public boolean isLoggedIn() {
024 /*
025 * get the user controller
026 */
027 final AdminUserController adminUserController = this.getSessionScopedController(AdminUserController.class);
028 /*
029 * check
030 */
031 if (null != adminUserController.getUsername()) {
032 return true;
033 }
034 return false;
035 }
036
037 /**
038 * log out
039 */
040 @Route(uri = "pragmatach/admin/logout")
041 public Response logout() throws PragmatachException {
042 try {
043 /*
044 * get the user controller
045 */
046 final AdminUserController adminUserController = this.getSessionScopedController(AdminUserController.class);
047 /*
048 * remove the login session state
049 */
050 adminUserController.setUsername(null);
051 /*
052 * remove the cookies
053 */
054 getRequest().getCookies().removeCookie(BaseAdminController.USERID);
055 getRequest().getCookies().removeCookie(BaseAdminController.PASSWORD);
056 /*
057 * to login screen
058 */
059 return super.forward("/pragmatach/admin/");
060 } catch (final Exception e) {
061 throw new PragmatachException("Exception in logout", e);
062 }
063 }
064 }