Changeset 323:5f6c6c0fb14e


Ignore:
Timestamp:
09/11/11 17:21:42 (5 months ago)
Author:
delmitz
Branch:
default
Convert:
svn:7c3792e6-d75b-4784-96a6-b298f655ee64/trunk@2757
Message:
  • fixed NPE.
  • added getAdminByLoginName.
Location:
kraken-dom/src/main/java/org/krakenapps/dom
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • kraken-dom/src/main/java/org/krakenapps/dom/api/AdminApi.java

    r322 r323  
    3535        Admin getAdmin(int organizationId, int adminId); 
    3636 
     37        Admin getAdminByLoginName(String loginName); 
     38 
    3739        Admin getAdminByUser(int organizationId, int userId); 
    3840 
  • kraken-dom/src/main/java/org/krakenapps/dom/api/impl/AdminApiImpl.java

    r322 r323  
    9898                                                        } 
    9999                                                } else if (loggedIn.size() >= maxSessions) { 
    100                                                         Session peek = loggedIn.peek().session; 
    101                                                         throw new MaxSessionException(peek.getAdminId(), peek); 
     100                                                        LoggedInAdmin peek = loggedIn.peek(); 
     101                                                        throw new MaxSessionException(peek.loginName, peek.session); 
    102102                                                } 
    103103                                        } 
     
    109109                        for (LoginCallback callback : callbacks) 
    110110                                callback.onLoginSuccess(admin, session); 
    111                         loggedIn.add(new LoggedInAdmin(admin.getRole().getLevel(), new Date(), session)); 
     111                        loggedIn.add(new LoggedInAdmin(admin.getRole().getLevel(), new Date(), session, admin.getUser() 
     112                                        .getLoginName())); 
    112113                        return admin; 
    113114                } else { 
     
    123124                private Date loginTime; 
    124125                private Session session; 
     126                private String loginName; 
    125127 
    126128                private LoggedInAdmin(Session session) { 
     
    128130                } 
    129131 
    130                 private LoggedInAdmin(int level, Date loginTime, Session session) { 
     132                private LoggedInAdmin(int level, Date loginTime, Session session, String loginName) { 
    131133                        this.level = level; 
    132134                        this.loginTime = loginTime; 
    133135                        this.session = session; 
     136                        this.loginName = loginName; 
    134137                } 
    135138 
     
    218221        private Admin getAdmin(String nick, Session session) { 
    219222                try { 
    220                         EntityManager em = entityManagerService.getEntityManager(); 
    221                         Admin admin = (Admin) em.createQuery("SELECT a FROM Admin a LEFT JOIN a.user u WHERE u.loginName = ?") 
    222                                         .setParameter(1, nick).getSingleResult(); 
     223                        Admin admin = getAdminByLoginName(nick); 
    223224                        if (!admin.isEnabled()) { 
    224225                                Date failed = admin.getLastLoginFailedDateTime(); 
     
    232233                                        updateLoginFailures(admin, true); 
    233234                        } 
    234  
    235235                        admin.setLastLoginDateTime(new Date()); 
     236 
     237                        EntityManager em = entityManagerService.getEntityManager(); 
    236238                        em.merge(admin); 
    237239                        return admin; 
     
    277279                        return null; 
    278280 
     281                return admin; 
     282        } 
     283 
     284        @Transactional 
     285        @Override 
     286        public Admin getAdminByLoginName(String loginName) { 
     287                EntityManager em = entityManagerService.getEntityManager(); 
     288                Admin admin = (Admin) em.createQuery("SELECT a FROM Admin a LEFT JOIN a.user u WHERE u.loginName = ?") 
     289                                .setParameter(1, loginName).getSingleResult(); 
    279290                return admin; 
    280291        } 
  • kraken-dom/src/main/java/org/krakenapps/dom/exception/MaxSessionException.java

    r322 r323  
    66        private static final long serialVersionUID = 1L; 
    77 
    8         private Integer adminId; 
     8        private String loginName; 
    99        private Session session; 
    1010 
     
    1313        } 
    1414 
    15         public MaxSessionException(Integer adminId, Session session) { 
     15        public MaxSessionException(String loginName, Session session) { 
    1616                super("max-session"); 
    17                 this.adminId = adminId; 
     17                this.loginName = loginName; 
    1818                this.session = session; 
    1919        } 
    2020 
    21         public Integer getAdminId() { 
    22                 return adminId; 
     21        public String getLoginName() { 
     22                return loginName; 
    2323        } 
    2424 
  • kraken-dom/src/main/java/org/krakenapps/dom/msgbus/LoginPlugin.java

    r322 r323  
    8282                        resp.put("result", e.getErrorCode()); 
    8383                        String loginName = null; 
    84                         if (e.getAdminId() != null) { 
    85                                 Admin admin = adminApi.getAdmin(req.getOrgId(), e.getAdminId()); 
     84                        if (e.getLoginName() != null) { 
     85                                Admin admin = adminApi.getAdminByLoginName(e.getLoginName()); 
    8686                                loginName = admin.getUser().getLoginName(); 
    8787                        } 
Note: See TracChangeset for help on using the changeset viewer.