Ignore:
Timestamp:
09/11/11 17:21:42 (8 months ago)
Author:
delmitz
Branch:
default
Convert:
svn:7c3792e6-d75b-4784-96a6-b298f655ee64/trunk@2757
Message:
  • fixed NPE.
  • added getAdminByLoginName.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • 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        } 
Note: See TracChangeset for help on using the changeset viewer.