Guest User

Untitled

a guest
Sep 19th, 2018
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.63 KB | None | 0 0
  1. @Entity
  2. @Table(name = "Users")
  3. public class User implements UserDetails, Comparable<User> {
  4.  
  5. @Id
  6. @GenericGenerator(name = "generator", strategy = "guid", parameters = {})
  7. @GeneratedValue(generator = "generator")
  8. @Generated(GenerationTime.INSERT)
  9. @Column(name = "uid")
  10. private String uid;
  11.  
  12. @Column(name = "user_name")
  13. private String name;
  14.  
  15. @Column(name = "user_login")
  16. private String username;
  17.  
  18. @OneToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
  19. @JoinColumn(name = "user_phone")
  20. private PhoneNumber phone;
  21.  
  22. @Column(name = "user_email")
  23. private String email;
  24.  
  25. @Column(name = "user_account")
  26. private String account;
  27.  
  28. @Column(name = "user_enabled")
  29. private boolean enabled;
  30.  
  31. @OneToMany(fetch = FetchType.EAGER)
  32. @Fetch(FetchMode.SELECT)
  33. @JoinColumn(name = "\"user\"")
  34. private List<UserCloudService> userCloudServices = Lists.newLinkedList();
  35.  
  36. /**
  37. * Имя пользователя
  38. */
  39. @Column(name = "user_firstname")
  40. private String firstName;
  41.  
  42. /**
  43. * Отчество пользоваля
  44. */
  45. @Column(name = "user_middlename")
  46. private String middleName;
  47.  
  48. /**
  49. * Фамилия пользователя
  50. */
  51. @Column(name = "user_lastname")
  52. private String lastName;
  53.  
  54. @JsonIgnore
  55. @Column(name = "user_password")
  56. private String password;
  57.  
  58. @JsonIgnore
  59. @Column(name = "user_referer_url")
  60. private String refererUrl;
  61.  
  62. @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
  63. @Fetch(FetchMode.SELECT)
  64. @JoinTable(name = "UserRoles",
  65. joinColumns = @JoinColumn(name = "\"user\""),
  66. inverseJoinColumns = @JoinColumn(name = "role"))
  67. Collection<CloudGrantedAuthority> authorities;
  68.  
  69.  
  70.  
  71. @OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
  72. @Fetch(FetchMode.SELECT)
  73. @JoinTable(name = "UserInterfaces1C",
  74. joinColumns = @JoinColumn(name = "\"UserUID\""),
  75. inverseJoinColumns = @JoinColumn(name = "\"InterfaceUID\""))
  76. private List<Interface1C> interface1C;
  77.  
  78. public List<Interface1C> getInterface1C() {
  79. return interface1C;
  80. }
  81.  
  82. public void setInterface1C(List<Interface1C> interface1C) {
  83. this.interface1C = interface1C;
  84. }
  85. @Override
  86. @SuppressWarnings("unchecked")
  87. public Collection<CloudGrantedAuthority> getAuthorities() {
  88. if (authorities != null) {
  89. return authorities;
  90. } else {
  91. return Collections.emptyList();
  92. }
  93. }
  94.  
  95. public void setAuthorities(Collection<CloudGrantedAuthority> roles) {
  96. this.authorities = roles;
  97. }
  98.  
  99. public void applyRole(CloudGrantedAuthority role) {
  100. if (authorities == null) {
  101. authorities = new LinkedList<CloudGrantedAuthority>();
  102. }
  103. String rServiceId = role.getService().getId();
  104. CloudGrantedAuthority toRemove = null;
  105. for (CloudGrantedAuthority r : authorities) {
  106. if (r.getService().getId().equals(rServiceId)) {
  107. authorities.remove(r);
  108. authorities.add(role);
  109. return;
  110. }
  111. }
  112. authorities.add(role);
  113. }
  114.  
  115. public boolean hasRole(CloudGrantedAuthority role) {
  116. return authorities.contains(role);
  117. }
  118.  
  119. public String getRole(String serviceId) {
  120. for (CloudGrantedAuthority r : authorities) {
  121. if (r.getService().getId().equals(serviceId)) return r.getId();
  122. }
  123. return null;
  124. }
  125.  
  126. /**
  127. * Одно и то-же что <tt>setUsername</tt>
  128. * метод использован для упрощения мапинга данных
  129. * при авторизации пользователя
  130. *
  131. * @param login логин пользователя
  132. */
  133. @Deprecated
  134. public void setLogin(String login) {
  135. this.username = login;
  136. }
  137.  
  138. public String getLogin() {
  139. return username;
  140. }
  141.  
  142. @Override
  143. public String getUsername() {
  144. return username;
  145. }
  146.  
  147. public void setUsername(String username) {
  148. this.username = username;
  149. }
  150.  
  151. @Override
  152. public boolean isAccountNonExpired() {
  153. return enabled;
  154. }
  155.  
  156. @Override
  157. public boolean isAccountNonLocked() {
  158. return enabled;
  159. }
  160.  
  161. public String getRefererUrl() {
  162. return refererUrl;
  163. }
  164.  
  165. public void setRefererUrl(String refererUrl) {
  166. this.refererUrl = refererUrl;
  167. }
  168.  
  169. @Override
  170. public boolean isCredentialsNonExpired() {
  171. return enabled;
  172. }
  173.  
  174. @Override
  175. public boolean isEnabled() {
  176. return enabled;
  177. }
  178.  
  179. public void setEnabled(boolean enabled) {
  180. this.enabled = enabled;
  181. }
  182.  
  183. public String getFirstName() {
  184. return firstName;
  185. }
  186.  
  187. public void setFirstName(String firstName) {
  188. this.firstName = firstName;
  189. }
  190.  
  191. public String getMiddleName() {
  192. return middleName;
  193. }
  194.  
  195. public void setMiddleName(String middleName) {
  196. this.middleName = middleName;
  197. }
  198.  
  199. public String getLastName() {
  200. return lastName;
  201. }
  202.  
  203. public void setLastName(String lastName) {
  204. this.lastName = lastName;
  205. }
  206.  
  207. public String getFullName() {
  208. StringBuilder name = new StringBuilder();
  209. if (lastName != null && !lastName.isEmpty()) {
  210. name.append(lastName);
  211. name.append(" ");
  212. }
  213. name.append(firstName);
  214. if (middleName != null && !middleName.isEmpty()) {
  215. name.append(" ");
  216. name.append(middleName);
  217. }
  218. return name.toString();
  219. }
  220.  
  221.  
  222. public String getName() {
  223. return getFullName();
  224. }
  225.  
  226. public void setName(String name) {
  227. this.name = name;
  228. }
  229.  
  230. public PhoneNumber getPhone() {
  231. return phone;
  232. }
  233.  
  234. public void setPhone(PhoneNumber phone) {
  235. if (phone.getUid() == null && this.phone != null) {
  236. phone.setUid(this.phone.getUid());
  237. }
  238. this.phone = phone;
  239. }
  240.  
  241. public String getEmail() {
  242. return email;
  243. }
  244.  
  245. public void setEmail(String email) {
  246. this.email = email;
  247. }
  248.  
  249. public String getAccount() {
  250. return account;
  251. }
  252.  
  253. public void setAccount(String account) {
  254. this.account = account;
  255. }
  256.  
  257. public String getUid() {
  258. return uid;
  259. }
  260.  
  261. public void setUid(String uid) {
  262. this.uid = uid;
  263. }
  264.  
  265. public List<UserCloudService> getUserCloudServices() {
  266. return userCloudServices;
  267. }
  268.  
  269. public void setUserCloudServices(List<UserCloudService> userCloudServices) {
  270. this.userCloudServices = userCloudServices;
  271. }
  272.  
  273. public String getPassword() {
  274. return password;
  275. }
  276.  
  277. public void setPassword(String password) {
  278. this.password = password;
  279. }
  280.  
  281. @Override
  282. public String toString() {
  283. final StringBuilder sb = new StringBuilder();
  284. sb.append("User");
  285. sb.append("{name='").append(getFullName()).append('\'');
  286. sb.append(", phone='").append(phone).append('\'');
  287. sb.append(", email='").append(email).append('\'');
  288. sb.append(", account='").append(account).append('\'');
  289. sb.append(", enabled=").append(enabled);
  290. sb.append(", uid='").append(uid).append('\'');
  291. sb.append('}');
  292. return sb.toString();
  293. }
  294.  
  295. @Override
  296. public int compareTo(User o) {
  297. int res = name.compareTo(o.getName());
  298. if (res == 0) {
  299. return uid.compareTo(o.getUid());
  300. }
  301. return res;
  302. }
  303.  
  304. @Override
  305. public boolean equals(Object obj) {
  306. if (User.class.isAssignableFrom(obj.getClass())) {
  307. User u = (User) obj;
  308. boolean eq = u.uid.equals(uid)
  309. && u.username.equals(username)
  310. && u.password.equals(password)
  311. && u.enabled == enabled;
  312. if (eq) {
  313. Set<CloudGrantedAuthority> auths = new LinkedHashSet<CloudGrantedAuthority>(authorities);
  314. for (CloudGrantedAuthority role : u.authorities) {
  315. if (!auths.contains(role)) {
  316. return false;
  317. }
  318. }
  319. }
  320. return eq;
  321. }
  322. return false;
  323. }
  324.  
  325. @Override
  326. public int hashCode() {
  327. return uid.hashCode() * getFullName().hashCode() * ((account != null) ? account.hashCode() : 1) * 731;
  328. }
  329. }
Add Comment
Please, Sign In to add comment