001package com.khubla.pragmatach.plugin.adminapp;
002
003import com.khubla.pragmatach.framework.api.PragmatachException;
004import com.khubla.pragmatach.framework.api.Response;
005
006/**
007 * @author tome
008 */
009public class SecuredAdminController extends BaseAdminController {
010   /**
011    * check security
012    */
013   public Response render() throws PragmatachException {
014      /*
015       * get the user controller
016       */
017      final AdminUserController adminUserController = this.getSessionScopedController(AdminUserController.class);
018      /*
019       * user logged in?
020       */
021      if (null != adminUserController.getUsername()) {
022         /*
023          * user is logged in
024          */
025         return super.render();
026      } else {
027         /*
028          * check for the cookie
029          */
030         final String userId = getRequest().getCookies().getEncryptedCookie(USERID);
031         final String password = getRequest().getCookies().getEncryptedCookie(PASSWORD);
032         if ((null != userId) && (null != password)) {
033            /*
034             * check
035             */
036            if ((userId.compareTo(getConfigurationParameter("pragmatach.adminapp.username")) == 0) && (password.compareTo(getConfigurationParameter("pragmatach.adminapp.password")) == 0)) {
037               /*
038                * set the session state from the cookie
039                */
040               adminUserController.setUsername(userId);
041               /*
042                * redirect back and try again
043                */
044               return super.render();
045            } else {
046               /*
047                * log in
048                */
049               return super.forward("/pragmatach/admin/login");
050            }
051         } else {
052            /*
053             * log in
054             */
055            return super.forward("/pragmatach/admin/login");
056         }
057      }
058   }
059}