@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || !(o instanceof UserModel)) return false; UserModel that = (UserModel) o; return that.getId().equals(getId()); }
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || !(o instanceof UserModel)) return false; UserModel that = (UserModel) o; return that.getId().equals(getId()); }
@Override public String getId() { if (updated != null) return updated.getId(); return cached.getId(); }
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || !(o instanceof UserModel)) return false; UserModel that = (UserModel) o; return that.getId().equals(getId()); }
@Override public boolean equals(Object o) { if (this == o) return true; if (o == null || !(o instanceof UserModel)) return false; UserModel that = (UserModel) o; return that.getId().equals(getId()); }
@Override public CredentialModel getStoredCredentialByNameAndType(RealmModel realm, UserModel user, String name, String type) { UserEntity userEntity = em.getReference(UserEntity.class, user.getId()); TypedQuery<CredentialEntity> query = em.createNamedQuery("credentialByNameAndType", CredentialEntity.class) .setParameter("type", type) .setParameter("device", name) .setParameter("user", userEntity); List<CredentialEntity> results = query.getResultList(); if (results.isEmpty()) return null; return toModel(results.get(0)); }
@Override public CredentialModel getStoredCredentialByNameAndType(RealmModel realm, UserModel user, String name, String type) { UserEntity userEntity = em.getReference(UserEntity.class, user.getId()); TypedQuery<CredentialEntity> query = em.createNamedQuery("credentialByNameAndType", CredentialEntity.class) .setParameter("type", type) .setParameter("device", name) .setParameter("user", userEntity); List<CredentialEntity> results = query.getResultList(); if (results.isEmpty()) return null; return toModel(results.get(0)); }
@Override public List<UserSessionModel> getUserSessions(RealmModel realm, UserModel user) { List<UserSessionModel> sessions = new LinkedList<UserSessionModel>(); TypedQuery<UserSessionEntity> query = em.createNamedQuery("getUserSessionByUser", UserSessionEntity.class) .setParameter("realmId", realm.getId()) .setParameter("userId", user.getId()); for (UserSessionEntity e : query.getResultList()) { sessions.add(new UserSessionAdapter(session, em, realm, e)); } return sessions; }
@Override public List<CredentialModel> getStoredCredentials(RealmModel realm, UserModel user) { UserEntity userEntity = em.getReference(UserEntity.class, user.getId()); TypedQuery<CredentialEntity> query = em.createNamedQuery("credentialByUser", CredentialEntity.class) .setParameter("user", userEntity); List<CredentialEntity> results = query.getResultList(); List<CredentialModel> rtn = new LinkedList<>(); for (CredentialEntity entity : results) { rtn.add(toModel(entity)); } return rtn; }
@Override public List<CredentialModel> getStoredCredentials(RealmModel realm, UserModel user) { UserEntity userEntity = em.getReference(UserEntity.class, user.getId()); TypedQuery<CredentialEntity> query = em.createNamedQuery("credentialByUser", CredentialEntity.class) .setParameter("user", userEntity); List<CredentialEntity> results = query.getResultList(); List<CredentialModel> rtn = new LinkedList<>(); for (CredentialEntity entity : results) { rtn.add(toModel(entity)); } return rtn; }
@Override public boolean removeStoredCredential(RealmModel realm, UserModel user, String id) { CredentialEntity entity = em.find(CredentialEntity.class, id); if (entity == null) return false; em.remove(entity); UserEntity userEntity = userInEntityManagerContext(user.getId()); if (userEntity != null) { userEntity.getCredentials().remove(entity); } return true; }
@Override public UserModel addUser(RealmModel realm, String username) { UserModel user = getDelegate().addUser(realm, username); managedUsers.put(user.getId(), user); return user; }
@Override public List<UserSessionModel> getUserSessions(RealmModel realm, UserModel user) { List<UserSessionModel> userSessions = new LinkedList<UserSessionModel>(); for (UserSessionEntity s : this.userSessions.values()) { if (s.getRealm().equals(realm.getId()) && s.getUser().equals(user.getId())) { userSessions.add(new UserSessionAdapter(session, this, realm, s)); } } return userSessions; }
protected void validateUser(RealmModel realm, UserModel user) { if (managedUsers.containsKey(user.getId())) { return; } UserFederationProvider link = getFederationLink(realm, user); if (link != null && !link.isValid(realm, user)) { deleteInvalidUser(realm, user); throw new IllegalStateException("Federated user no longer valid"); } }
@Override public int getNotBeforeOfUser(RealmModel realm, UserModel user) { UserEntity entity = em.getReference(UserEntity.class, user.getId()); return entity.getNotBefore(); }
@Override public void setNotBeforeForUser(RealmModel realm, UserModel user, int notBefore) { UserEntity entity = em.getReference(UserEntity.class, user.getId()); entity.setNotBefore(notBefore); }
@Override public UserModel addUser(RealmModel realm, String username) { UserModel user = getDelegate().addUser(realm, username); // just in case the transaction is rolled back you need to invalidate the user and all cache queries for that user fullyInvalidateUser(realm, user); managedUsers.put(user.getId(), user); return user; }
@Override public Set<FederatedIdentityModel> getFederatedIdentities(UserModel user, RealmModel realm) { TypedQuery<FederatedIdentityEntity> query = em.createNamedQuery("findFederatedIdentityByUser", FederatedIdentityEntity.class); UserEntity userEntity = em.getReference(UserEntity.class, user.getId()); query.setParameter("user", userEntity); List<FederatedIdentityEntity> results = query.getResultList(); Set<FederatedIdentityModel> set = new HashSet<FederatedIdentityModel>(); for (FederatedIdentityEntity entity : results) { set.add(new FederatedIdentityModel(entity.getIdentityProvider(), entity.getUserId(), entity.getUserName(), entity.getToken())); } return set; }
@Override public void setNotBeforeForUser(RealmModel realm, UserModel user, int notBefore) { if (!isRegisteredForInvalidation(realm, user.getId())) { UserModel foundUser = getUserById(user.getId(), realm); if (foundUser instanceof UserAdapter) { ((UserAdapter) foundUser).invalidate(); } } getDelegate().setNotBeforeForUser(realm, user, notBefore); }
@Override public boolean removeFederatedIdentity(RealmModel realm, UserModel userModel, String socialProvider) { UserAdapter user = getUserById(userModel.getId(), realm); MongoUserEntity userEntity = user.getUser(); FederatedIdentityEntity federatedIdentityEntity = findFederatedIdentityLink(userEntity, socialProvider); if (federatedIdentityEntity == null) { return false; } return getMongoStore().pullItemFromList(userEntity, "federatedIdentities", federatedIdentityEntity, invocationContext); }