@Override public String getItemId(Object item) { return String.valueOf(((User)item).getId()); }
public int hashCode() { return new HashCodeBuilder() .append(getClass().getName()) .append(getId()) .toHashCode(); } /**
public String toString() { return new ToStringBuilder(this) .append("id", getId()) .append("nick", getNick()) .toString(); } public boolean equals(Object other) {
/** * @return nick(id) */ public String getNickAndId() { StringBuilder sb = new StringBuilder (getNick()); sb.append ('('); sb.append (Long.toString(getId())); sb.append (')'); return sb.toString(); }
@Override public String getHeaderSpecificTitle(Object entity) { if (entity instanceof User) { User u = (User) entity; return u.getNick() != null ? u.getId() + " - " + u.getNick() : "New"; } else { return null; } }
protected Predicate[] buildFilters(Root<Consumer> root) { Predicate notDeleted = db.session.getCriteriaBuilder().isFalse(root.get("deleted")); if (user != null) { Predicate p = db.session().getCriteriaBuilder().equal(root.get("user"),user.getId()); return new Predicate[]{notDeleted,p}; } return new Predicate[]{notDeleted}; }
private void setV0Password (User u, String clearpass) throws Exception { assertNotNull(clearpass, "Invalid password"); u.setPasswordHash(HashVersion.ZERO.hash(Long.toString(u.getId()), clearpass, null)); } }
@Override public Object getEntityByParam(String param) { return super.getEntityByParam(String.valueOf(QI.getQI().getUser().getId())); }
private void setV1Password (User u, String clearpass) throws Exception { assertNotNull(clearpass, "Invalid password"); u.setPasswordHash(HashVersion.ONE.hash(Long.toString(u.getId(),16), clearpass, HashVersion.ONE.getSalt())); }
@Override protected void navigateToNewRoute() { getApp().getNavigator().navigateTo(getGeneralRoute() + "/new?user=" + this.selectedUser.getId()); }
@Override protected void addFields(Layout l) { super.addFields(l); selectedU = getInstance(); if (getInstance().getId() != null && getInstance().getId().equals(getApp().getUser().getId())) { changePassBtn = createChangePasswordButton(); l.addComponents(changePassBtn, createPasswordPanel()); } if (getInstance().hasPermission("sysadmin") && !isNewView()) { resetPassBtn = createResetPasswordButton(); l.addComponent(resetPassBtn); } }
@Override public boolean removeEntity() { //Users have a deleted flag, they are not completely removed. User t = (User) getOriginalEntity(); try { return t != null && (boolean) DB.execWithTransaction((db) -> { User user = db.session().get(User.class, t.getId()); if (user == null) return false; t.setDeleted(true); db.session().merge(t); addRevisionRemoved(db, getEntityName(), String.valueOf(t.getId())); return true; }); } catch (Exception e) { getApp().getLog().error(e); return false; } }
public boolean upgradePassword (User u, String clearpass) throws Exception { assertNotNull(clearpass, "Invalid pass"); String passwordHash = u.getPasswordHash(); assertNotNull(passwordHash, "Password is null"); HashVersion v = HashVersion.getVersion(passwordHash); if (v == HashVersion.ZERO && checkV0Password(passwordHash, u.getId(), clearpass)) { setPassword(u, clearpass, null, HashVersion.ONE); return true; } return false; }
public Validator getNickTakenValidator() { return (Validator<String>) (value, context) -> { String oldNick = getOriginalEntity() != null ? ((User) getOriginalEntity()).getNick() : null; if (oldNick != null) { User u = getUserByNick((String) value, true); if (u == null || u.getId().equals(((User) getOriginalEntity()).getId())) { return ValidationResult.ok(); } return ValidationResult.error(getApp().getMessage("errorMessage.nickAlreadyExists", value)); } else { if (getUserByNick((String) value, true) == null) { return ValidationResult.ok(); } return ValidationResult.error(getApp().getMessage("errorMessage.nickAlreadyExists", value)); } }; }
public boolean checkPassword (User u, String clearpass) throws Exception { assertNotNull(clearpass, "Invalid pass"); String passwordHash = u.getPasswordHash(); assertNotNull(passwordHash, "Password is null"); HashVersion v = HashVersion.getVersion(passwordHash); assertTrue(v != HashVersion.UNKNOWN, "Unknown password"); switch (v) { case ZERO: return checkV0Password(passwordHash, u.getId(), clearpass); case ONE: return checkV1Password(passwordHash, clearpass); } return false; }
@Override public void enter (ViewChangeListener.ViewChangeEvent event) { setHelper(createHelper()); getHelper().setConfiguration(getConfiguration()); showSpecificView(getGeneralRoute() + "/" + QI.getQI().getUser().getId()); }
public void setPassword (User u, String clearpass, User author, HashVersion v) throws Exception { if (u.getPasswordHash() != null) u.addPasswordHistoryValue(u.getPasswordHash()); switch (v) { case ZERO: setV0Password (u, clearpass); break; case ONE: setV1Password (u, clearpass); break; } u.setPasswordChanged(new Date()); u.setForcePasswordChange(false); RevisionManager revmgr = new RevisionManager(db); if (author == null) author = u; revmgr.createRevision(author, "user." + u.getId(), "Password changed"); db.session().saveOrUpdate(u); }
/** * @param u the user * @param clearpass new password in clear * @return true if password is in PasswordHistory */ public boolean checkNewPassword (User u, String clearpass) throws Exception { if (checkPassword (u, clearpass)) { return false; // same password not allowed } for (PasswordHistory p : u.getPasswordhistory()) { HashVersion v = HashVersion.getVersion(p.getValue()); switch (v) { case ZERO: if (checkV0Password(p.getValue(), u.getId(), clearpass)) return false; case ONE: if (checkV1Password (p.getValue(), clearpass)) return false; } } return true; }