Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Entity
- @Table(name = "Users")
- public class User implements UserDetails, Comparable<User> {
- @Id
- @GenericGenerator(name = "generator", strategy = "guid", parameters = {})
- @GeneratedValue(generator = "generator")
- @Generated(GenerationTime.INSERT)
- @Column(name = "uid")
- private String uid;
- @Column(name = "user_name")
- private String name;
- @Column(name = "user_login")
- private String username;
- @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
- @JoinColumn(name = "user_phone")
- private PhoneNumber phone;
- @Column(name = "user_email")
- private String email;
- @Column(name = "user_account")
- private String account;
- @Column(name = "user_enabled")
- private boolean enabled;
- @OneToMany(fetch = FetchType.EAGER)
- @Fetch(FetchMode.SELECT)
- @JoinColumn(name = "\"user\"")
- private List<UserCloudService> userCloudServices = Lists.newLinkedList();
- /**
- * Имя пользователя
- */
- @Column(name = "user_firstname")
- private String firstName;
- /**
- * Отчество пользоваля
- */
- @Column(name = "user_middlename")
- private String middleName;
- /**
- * Фамилия пользователя
- */
- @Column(name = "user_lastname")
- private String lastName;
- @JsonIgnore
- @Column(name = "user_password")
- private String password;
- @JsonIgnore
- @Column(name = "user_referer_url")
- private String refererUrl;
- @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
- @Fetch(FetchMode.SELECT)
- @JoinTable(name = "UserRoles",
- joinColumns = @JoinColumn(name = "\"user\""),
- inverseJoinColumns = @JoinColumn(name = "role"))
- Collection<CloudGrantedAuthority> authorities;
- @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
- @Fetch(FetchMode.SELECT)
- @JoinTable(name = "UserInterfaces1C",
- joinColumns = @JoinColumn(name = "\"UserUID\""),
- inverseJoinColumns = @JoinColumn(name = "\"InterfaceUID\""))
- private List<Interface1C> interface1C;
- public List<Interface1C> getInterface1C() {
- return interface1C;
- }
- public void setInterface1C(List<Interface1C> interface1C) {
- this.interface1C = interface1C;
- }
- @Override
- @SuppressWarnings("unchecked")
- public Collection<CloudGrantedAuthority> getAuthorities() {
- if (authorities != null) {
- return authorities;
- } else {
- return Collections.emptyList();
- }
- }
- public void setAuthorities(Collection<CloudGrantedAuthority> roles) {
- this.authorities = roles;
- }
- public void applyRole(CloudGrantedAuthority role) {
- if (authorities == null) {
- authorities = new LinkedList<CloudGrantedAuthority>();
- }
- String rServiceId = role.getService().getId();
- CloudGrantedAuthority toRemove = null;
- for (CloudGrantedAuthority r : authorities) {
- if (r.getService().getId().equals(rServiceId)) {
- authorities.remove(r);
- authorities.add(role);
- return;
- }
- }
- authorities.add(role);
- }
- public boolean hasRole(CloudGrantedAuthority role) {
- return authorities.contains(role);
- }
- public String getRole(String serviceId) {
- for (CloudGrantedAuthority r : authorities) {
- if (r.getService().getId().equals(serviceId)) return r.getId();
- }
- return null;
- }
- /**
- * Одно и то-же что <tt>setUsername</tt>
- * метод использован для упрощения мапинга данных
- * при авторизации пользователя
- *
- * @param login логин пользователя
- */
- @Deprecated
- public void setLogin(String login) {
- this.username = login;
- }
- public String getLogin() {
- return username;
- }
- @Override
- public String getUsername() {
- return username;
- }
- public void setUsername(String username) {
- this.username = username;
- }
- @Override
- public boolean isAccountNonExpired() {
- return enabled;
- }
- @Override
- public boolean isAccountNonLocked() {
- return enabled;
- }
- public String getRefererUrl() {
- return refererUrl;
- }
- public void setRefererUrl(String refererUrl) {
- this.refererUrl = refererUrl;
- }
- @Override
- public boolean isCredentialsNonExpired() {
- return enabled;
- }
- @Override
- public boolean isEnabled() {
- return enabled;
- }
- public void setEnabled(boolean enabled) {
- this.enabled = enabled;
- }
- public String getFirstName() {
- return firstName;
- }
- public void setFirstName(String firstName) {
- this.firstName = firstName;
- }
- public String getMiddleName() {
- return middleName;
- }
- public void setMiddleName(String middleName) {
- this.middleName = middleName;
- }
- public String getLastName() {
- return lastName;
- }
- public void setLastName(String lastName) {
- this.lastName = lastName;
- }
- public String getFullName() {
- StringBuilder name = new StringBuilder();
- if (lastName != null && !lastName.isEmpty()) {
- name.append(lastName);
- name.append(" ");
- }
- name.append(firstName);
- if (middleName != null && !middleName.isEmpty()) {
- name.append(" ");
- name.append(middleName);
- }
- return name.toString();
- }
- public String getName() {
- return getFullName();
- }
- public void setName(String name) {
- this.name = name;
- }
- public PhoneNumber getPhone() {
- return phone;
- }
- public void setPhone(PhoneNumber phone) {
- if (phone.getUid() == null && this.phone != null) {
- phone.setUid(this.phone.getUid());
- }
- this.phone = phone;
- }
- public String getEmail() {
- return email;
- }
- public void setEmail(String email) {
- this.email = email;
- }
- public String getAccount() {
- return account;
- }
- public void setAccount(String account) {
- this.account = account;
- }
- public String getUid() {
- return uid;
- }
- public void setUid(String uid) {
- this.uid = uid;
- }
- public List<UserCloudService> getUserCloudServices() {
- return userCloudServices;
- }
- public void setUserCloudServices(List<UserCloudService> userCloudServices) {
- this.userCloudServices = userCloudServices;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- @Override
- public String toString() {
- final StringBuilder sb = new StringBuilder();
- sb.append("User");
- sb.append("{name='").append(getFullName()).append('\'');
- sb.append(", phone='").append(phone).append('\'');
- sb.append(", email='").append(email).append('\'');
- sb.append(", account='").append(account).append('\'');
- sb.append(", enabled=").append(enabled);
- sb.append(", uid='").append(uid).append('\'');
- sb.append('}');
- return sb.toString();
- }
- @Override
- public int compareTo(User o) {
- int res = name.compareTo(o.getName());
- if (res == 0) {
- return uid.compareTo(o.getUid());
- }
- return res;
- }
- @Override
- public boolean equals(Object obj) {
- if (User.class.isAssignableFrom(obj.getClass())) {
- User u = (User) obj;
- boolean eq = u.uid.equals(uid)
- && u.username.equals(username)
- && u.password.equals(password)
- && u.enabled == enabled;
- if (eq) {
- Set<CloudGrantedAuthority> auths = new LinkedHashSet<CloudGrantedAuthority>(authorities);
- for (CloudGrantedAuthority role : u.authorities) {
- if (!auths.contains(role)) {
- return false;
- }
- }
- }
- return eq;
- }
- return false;
- }
- @Override
- public int hashCode() {
- return uid.hashCode() * getFullName().hashCode() * ((account != null) ? account.hashCode() : 1) * 731;
- }
- }
Add Comment
Please, Sign In to add comment