Fix NPE & other sonar issues
[portal.git] / ecomp-portal-BE-common / src / main / java / org / onap / portalapp / portal / domain / EPUser.java
1 /*-
2  * ============LICENSE_START==========================================
3  * ONAP Portal
4  * ===================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ===================================================================
7  *
8  * Unless otherwise specified, all software contained herein is licensed
9  * under the Apache License, Version 2.0 (the "License");
10  * you may not use this software except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *             http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  *
21  * Unless otherwise specified, all documentation contained herein is licensed
22  * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
23  * you may not use this documentation except in compliance with the License.
24  * You may obtain a copy of the License at
25  *
26  *             https://creativecommons.org/licenses/by/4.0/
27  *
28  * Unless required by applicable law or agreed to in writing, documentation
29  * distributed under the License is distributed on an "AS IS" BASIS,
30  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
31  * See the License for the specific language governing permissions and
32  * limitations under the License.
33  *
34  * ============LICENSE_END============================================
35  *
36  *
37  */
38 package org.onap.portalapp.portal.domain;
39
40 import java.util.Date;
41 import java.util.Iterator;
42 import java.util.SortedSet;
43 import java.util.TreeSet;
44
45 import javax.validation.Valid;
46 import org.hibernate.validator.constraints.SafeHtml;
47 import org.onap.portalapp.portal.utils.PortalConstants;
48 import org.onap.portalsdk.core.domain.User;
49 import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
50
51 import com.fasterxml.jackson.annotation.JsonIgnore;
52
53 public class EPUser extends User {
54
55     private Long orgId;
56     private Long managerId;
57     @SafeHtml
58     private String firstName;
59     @SafeHtml
60     private String middleInitial;
61     @SafeHtml
62     private String lastName;
63     @SafeHtml
64     private String phone;
65     @SafeHtml
66     private String fax;
67     @SafeHtml
68     private String cellular;
69     @SafeHtml
70     private String email;
71     private Long addressId;
72     @SafeHtml
73     private String alertMethodCd;
74     @SafeHtml
75     private String hrid;
76     @SafeHtml
77     private String orgUserId;
78     @SafeHtml
79     private String orgCode;
80     @SafeHtml
81     private String address1;
82     @SafeHtml
83     private String address2;
84     @SafeHtml
85     private String city;
86     @SafeHtml
87     private String state;
88     @SafeHtml
89     private String zipCode;
90     @SafeHtml
91     private String country;
92     @SafeHtml
93     private String orgManagerUserId;
94     @SafeHtml
95     private String locationClli;
96     @SafeHtml
97     private String businessCountryCode;
98     @SafeHtml
99     private String businessCountryName;
100     @SafeHtml
101     private String businessUnit;
102     @SafeHtml
103     private String businessUnitName;
104     @SafeHtml
105     private String department;
106     @SafeHtml
107     private String departmentName;
108     @SafeHtml
109     private String companyCode;
110     @SafeHtml
111     private String company;
112     @SafeHtml
113     private String zipCodeSuffix;
114     @SafeHtml
115     private String jobTitle;
116     @SafeHtml
117     private String commandChain;
118     @SafeHtml
119     private String siloStatus;
120     @SafeHtml
121     private String costCenter;
122     @SafeHtml
123     private String financialLocCode;
124
125     @SafeHtml
126     private String loginId;
127     @SafeHtml
128     private String loginPwd;
129     private Date lastLoginDate;
130     private boolean active;
131     private boolean internal;
132     private Long selectedProfileId;
133     private Long timeZoneId;
134     private boolean online;
135     @SafeHtml
136     private String chatId;
137     private boolean systemUser;
138     private Integer languageId;
139     private static final long serialVersionUID = 1L;
140
141     private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPUser.class);
142     private static final String ECOMP_PORTAL_NAME = "ECOMP";
143     private boolean isGuest = false;
144     @Valid
145     private SortedSet<EPUserApp> userApps = new TreeSet<>();
146     @Valid
147     private SortedSet<EPRole> pseudoRoles = new TreeSet<>();
148
149     public EPUser() {}
150
151     @Override
152     public Long getAddressId() {
153         return addressId;
154     }
155
156     @Override
157     public String getAlertMethodCd() {
158         return alertMethodCd;
159     }
160
161     @Override
162     public String getCellular() {
163         return cellular;
164     }
165
166     @Override
167     public String getEmail() {
168         return email;
169     }
170
171     @Override
172     public String getFax() {
173         return fax;
174     }
175
176     @Override
177     public String getFirstName() {
178         return firstName;
179     }
180
181     @Override
182     public String getHrid() {
183         return hrid;
184     }
185
186     @Override
187     public Date getLastLoginDate() {
188         return lastLoginDate;
189     }
190
191     @Override
192     public String getLastName() {
193         return lastName;
194     }
195
196     @JsonIgnore
197     @Override
198     public String getFullName() {
199         return getFirstName() + " " + getLastName();
200     }
201
202     @Override
203     public String getLoginId() {
204         return loginId;
205     }
206
207     @Override
208     public String getLoginPwd() {
209         return loginPwd;
210     }
211
212     @Override
213     public Long getManagerId() {
214         return managerId;
215     }
216
217     @Override
218     public String getMiddleInitial() {
219         return middleInitial;
220     }
221
222     @Override
223     public String getOrgCode() {
224         return orgCode;
225     }
226
227     @Override
228     public Long getOrgId() {
229         return orgId;
230     }
231
232     @Override
233     public String getPhone() {
234         return phone;
235     }
236
237     @Override
238     public String getOrgUserId() {
239         return orgUserId;
240     }
241
242     @Override
243     public boolean getActive() {
244         return active;
245     }
246
247     @Override
248     public boolean getInternal() {
249         return internal;
250     }
251
252     @Override
253     public String getAddress1() {
254         return address1;
255     }
256
257     @Override
258     public String getAddress2() {
259         return address2;
260     }
261
262     @Override
263     public String getCity() {
264         return city;
265     }
266
267     @Override
268     public String getCountry() {
269         return country;
270     }
271
272     @Override
273     public String getState() {
274         return state;
275     }
276
277     @Override
278     public String getZipCode() {
279         return zipCode;
280     }
281
282     @Override
283     public String getBusinessCountryCode() {
284         return businessCountryCode;
285     }
286
287     @Override
288     public String getCommandChain() {
289         return commandChain;
290     }
291
292     @Override
293     public String getCompany() {
294         return company;
295     }
296
297     @Override
298     public String getCompanyCode() {
299         return companyCode;
300     }
301
302     @Override
303     public String getDepartment() {
304         return department;
305     }
306
307     @Override
308     public String getJobTitle() {
309         return jobTitle;
310     }
311
312     @Override
313     public String getLocationClli() {
314         return locationClli;
315     }
316
317     @Override
318     public String getOrgManagerUserId() {
319         return orgManagerUserId;
320     }
321
322     @Override
323     public String getZipCodeSuffix() {
324         return zipCodeSuffix;
325     }
326
327     @Override
328     public String getBusinessCountryName() {
329         return businessCountryName;
330     }
331
332     @Override
333     public Long getSelectedProfileId() {
334         return selectedProfileId;
335     }
336
337     @Override
338     public void setAddressId(Long addressId) {
339         this.addressId = addressId;
340     }
341
342     @Override
343     public void setAlertMethodCd(String alertMethodCd) {
344         this.alertMethodCd = alertMethodCd;
345     }
346
347     @Override
348     public void setCellular(String cellular) {
349         this.cellular = cellular;
350     }
351
352     @Override
353     public void setEmail(String email) {
354         this.email = email;
355     }
356
357     @Override
358     public void setFax(String fax) {
359         this.fax = fax;
360     }
361
362     @Override
363     public void setFirstName(String firstName) {
364         this.firstName = firstName;
365     }
366
367     @Override
368     public void setHrid(String hrid) {
369         this.hrid = hrid;
370     }
371
372     @Override
373     public void setLastLoginDate(Date lastLoginDate) {
374         this.lastLoginDate = lastLoginDate;
375     }
376
377     @Override
378     public void setLastName(String lastName) {
379         this.lastName = lastName;
380     }
381
382     @Override
383     public void setLoginId(String loginId) {
384         this.loginId = loginId;
385     }
386
387     @Override
388     public void setLoginPwd(String loginPwd) {
389         this.loginPwd = loginPwd;
390     }
391
392     @Override
393     public void setManagerId(Long managerId) {
394         this.managerId = managerId;
395     }
396
397     @Override
398     public void setMiddleInitial(String middleInitial) {
399         this.middleInitial = middleInitial;
400     }
401
402     @Override
403     public void setOrgCode(String orgCode) {
404         this.orgCode = orgCode;
405     }
406
407     @Override
408     public void setOrgId(Long orgId) {
409         this.orgId = orgId;
410     }
411
412     @Override
413     public void setPhone(String phone) {
414         this.phone = phone;
415     }
416
417     @Override
418     public void setOrgUserId(String orgUserId) {
419         this.orgUserId = orgUserId;
420     }
421
422     @Override
423     public void setActive(boolean active) {
424         this.active = active;
425     }
426
427     @Override
428     public void setInternal(boolean internal) {
429         this.internal = internal;
430     }
431
432     @Override
433     public void setAddress1(String address1) {
434         this.address1 = address1;
435     }
436
437     @Override
438     public void setAddress2(String address2) {
439         this.address2 = address2;
440     }
441
442     @Override
443     public void setCity(String city) {
444         this.city = city;
445     }
446
447     @Override
448     public void setCountry(String country) {
449         this.country = country;
450     }
451
452     @Override
453     public void setState(String state) {
454         this.state = state;
455     }
456
457     @Override
458     public void setZipCode(String zipCode) {
459         this.zipCode = zipCode;
460     }
461
462     @Override
463     public void setBusinessCountryCode(String businessCountryCode) {
464         this.businessCountryCode = businessCountryCode;
465     }
466
467     @Override
468     public void setCommandChain(String commandChain) {
469         this.commandChain = commandChain;
470     }
471
472     @Override
473     public void setCompany(String company) {
474         this.company = company;
475     }
476
477     @Override
478     public void setCompanyCode(String companyCode) {
479         this.companyCode = companyCode;
480     }
481
482     @Override
483     public void setDepartment(String department) {
484         this.department = department;
485     }
486
487     @Override
488     public void setJobTitle(String jobTitle) {
489         this.jobTitle = jobTitle;
490     }
491
492     @Override
493     public void setLocationClli(String locationClli) {
494         this.locationClli = locationClli;
495     }
496
497     @Override
498     public void setOrgManagerUserId(String orgManagerUserId) {
499         this.orgManagerUserId = orgManagerUserId;
500     }
501
502     @Override
503     public void setZipCodeSuffix(String zipCodeSuffix) {
504         this.zipCodeSuffix = zipCodeSuffix;
505     }
506
507     @Override
508     public void setBusinessCountryName(String businessCountryName) {
509         this.businessCountryName = businessCountryName;
510     }
511
512     @Override
513     public SortedSet<EPRole> getPseudoRoles() {
514         return pseudoRoles;
515     }
516
517     public void setPseudoRoles(SortedSet<EPRole> pseudoRoles) {
518         this.pseudoRoles = pseudoRoles;
519     }
520
521     @Override
522     public void setSelectedProfileId(Long selectedProfileId) {
523         this.selectedProfileId = selectedProfileId;
524     }
525
526     @Override
527     public Long getTimeZoneId() {
528         return timeZoneId;
529     }
530
531     @Override
532     public void setTimeZoneId(Long timeZoneId) {
533         this.timeZoneId = timeZoneId;
534     }
535
536     @Override
537     public String getBusinessUnit() {
538         return businessUnit;
539     }
540
541     @Override
542     public void setBusinessUnit(String businessUnit) {
543         this.businessUnit = businessUnit;
544     }
545
546     @Override
547     public String getSiloStatus() {
548         return siloStatus;
549     }
550
551     @Override
552     public void setSiloStatus(String siloStatus) {
553         this.siloStatus = siloStatus;
554     }
555
556     @Override
557     public String getCostCenter() {
558         return costCenter;
559     }
560
561     @Override
562     public void setCostCenter(String costCenter) {
563         this.costCenter = costCenter;
564     }
565
566     @Override
567     public String getFinancialLocCode() {
568         return financialLocCode;
569     }
570
571     @Override
572     public void setFinancialLocCode(String financialLocCode) {
573         this.financialLocCode = financialLocCode;
574     }
575
576     @Override
577     public String getBusinessUnitName() {
578         return businessUnitName;
579     }
580
581     @Override
582     public void setBusinessUnitName(String businessUnitName) {
583         this.businessUnitName = businessUnitName;
584     }
585
586     @Override
587     public String getDepartmentName() {
588         return departmentName;
589     }
590
591     @Override
592     public void setDepartmentName(String departmentName) {
593         this.departmentName = departmentName;
594     }
595
596     @Override
597     public int compareTo(Object obj) {
598         EPUser user = (EPUser) obj;
599
600         String c1 = getLastName() + getFirstName() + getMiddleInitial();
601         String c2 = user.getLastName() + user.getFirstName() + user.getMiddleInitial();
602
603         return c1.compareTo(c2);
604     }
605
606     @Override
607     public boolean isOnline() {
608         return online;
609     }
610
611     @Override
612     public void setOnline(boolean online) {
613         this.online = online;
614     }
615
616     @Override
617     public String getChatId() {
618         return chatId;
619     }
620
621     @Override
622     public void setChatId(String chatId) {
623         this.chatId = chatId;
624     }
625
626     public Integer getLanguageId() {
627         return languageId;
628     }
629
630     public void setLanguageId(Integer languageId) {
631         this.languageId = languageId;
632     }
633
634     public void setPseudoEPRoles(SortedSet<EPRole> pseudoRoles) {
635         this.pseudoRoles = pseudoRoles;
636     }
637
638     public SortedSet<EPUserApp> getEPUserApps() {
639         return userApps;
640     }
641
642     public void setEPUserApps(SortedSet<EPUserApp> userApps) {
643         this.userApps = userApps;
644     }
645
646     public void addUserApp(EPUserApp userApp) {
647         userApps.add(userApp);
648     }
649
650     public void addAppRoles(EPApp app, SortedSet<EPRole> roles) {
651         if (roles != null) {
652             // add all
653             SortedSet<EPUserApp> userApplications = new TreeSet<>();
654             // this.userApps.removeAll(this.userApps);
655             Iterator<EPRole> itr = roles.iterator();
656             while (itr.hasNext()) {
657                 EPRole role = itr.next();
658                 EPUserApp userApp = new EPUserApp();
659                 userApp.setUserId(this.id);
660                 userApp.setApp(app);
661                 userApp.setRole(role);
662                 userApplications.add(userApp);
663             }
664             setEPUserApps(userApplications);
665         } else {
666             // remove all
667             setEPUserApps(null);
668         }
669
670     }
671
672     public SortedSet<EPRole> getAppEPRoles(EPApp app) {
673
674         logger.debug(EELFLoggerDelegate.debugLogger, "In EPUser.getAppEPRoles() - app = {}", app.getName());
675
676         SortedSet<EPRole> roles = new TreeSet<>();
677         SortedSet<EPUserApp> userAppRoles = getEPUserApps();
678
679         logger.debug(EELFLoggerDelegate.debugLogger, "In EPUser.getAppEPRoles() - userApps = {} ", userAppRoles.size());
680
681         Iterator<EPUserApp> userAppRolesIterator = userAppRoles.iterator();
682
683         EPUserApp userAppRole = null;
684         // getting default app
685         while (userAppRolesIterator.hasNext()) {
686             EPUserApp tempUserApp = userAppRolesIterator.next();
687             if (tempUserApp.getApp().getId().equals(app.getId())) {
688
689                 logger.debug(EELFLoggerDelegate.debugLogger,
690                         "In EPUser.getAppEPRoles() - for user {}, found application {}", this.getFullName(),
691                         app.getName());
692
693                 userAppRole = tempUserApp;
694
695                 EPRole role = userAppRole.getRole();
696                 if (role.getActive()) {
697                     logger.debug(EELFLoggerDelegate.debugLogger,
698                             "In EPUser.getAppEPRoles() - Role {} is active - adding for user {} and app {}",
699                             role.getName(), this.getFullName(), app.getName());
700                     roles.add((EPRole) role);
701                 } else {
702                     logger.debug(EELFLoggerDelegate.debugLogger,
703                             "In EPUser.getAppEPRoles() - Role {} is NOT active - NOT adding for user {} and app {}",
704                             role.getName(), this.getFullName(), app.getName());
705                 }
706             }
707         }
708         logger.debug(EELFLoggerDelegate.debugLogger, "In EPUser.getAppEPRoles() - roles = {}", roles.size());
709
710         return roles;
711     }
712
713     /**
714      * Attention! Not for use in ONAP
715      */
716     public SortedSet<EPRole> getAppRoles(EPApp app) {
717         SortedSet<EPRole> roles = new TreeSet<>();
718         SortedSet<EPUserApp> apps = getEPUserApps();
719         Iterator<EPUserApp> appsItr = apps.iterator();
720         EPUserApp userApp = null;
721         // getting default app
722         while (appsItr.hasNext()) {
723             EPUserApp tempUserApp = appsItr.next();
724             if (tempUserApp.getApp().getId().equals(app.getId())) {
725                 userApp = tempUserApp;
726                 roles.add((EPRole) userApp.getRole());
727             }
728         }
729         return roles;
730     }
731
732     /**
733      * Attention! Not for use in ONAP
734      */
735     public SortedSet<EPRole> getEPRoles() {
736         EPApp app = new EPApp();
737         app.setId(PortalConstants.PORTAL_APP_ID);
738         app.setName(ECOMP_PORTAL_NAME);
739         return getAppEPRoles(app);
740     }
741
742     /**
743      * Attention! Not for use in ONAP
744      */
745     public void setEPRoles(SortedSet<EPRole> roles) {
746         EPApp app = new EPApp();
747         app.setId(PortalConstants.PORTAL_APP_ID);
748         app.setName(ECOMP_PORTAL_NAME);
749         addAppRoles(app, roles);
750     }
751
752     /**
753      * Attention! Not for use in ONAP
754      */
755     public void removeEPRole(Long roleId) {
756         SortedSet<EPUserApp> apps = getEPUserApps();
757         Iterator<EPUserApp> appsItr = apps.iterator();
758         // getting default app
759         while (appsItr.hasNext()) {
760             EPUserApp tempUserApp = appsItr.next();
761             if (tempUserApp.getAppId().equals(PortalConstants.PORTAL_APP_ID)
762                     && tempUserApp.getRole().getId().equals(roleId)) {
763                 appsItr.remove();
764             }
765         }
766     }
767
768     /**
769      * Attention! Not for use in ONAP
770      */
771     public void addEPRole(EPRole role) {
772         if (role != null) {
773             SortedSet<EPRole> roles = getEPRoles();
774             if (roles == null) {
775                 roles = new TreeSet<>();
776             }
777             roles.add(role);
778             setEPRoles(roles);
779         }
780     }
781
782     public boolean isGuest() {
783         return isGuest;
784     }
785
786     public void setGuest(boolean isGuest) {
787         this.isGuest = isGuest;
788     }
789
790     public boolean isSystemUser() {
791         return systemUser;
792     }
793
794     public void setSystemUser(boolean systemUser) {
795         this.systemUser = systemUser;
796     }
797
798     @Override
799     public String toString() {
800         return "EPUser [orgId=" + orgId + ", managerId=" + managerId + ", firstName=" + firstName + ", middleInitial="
801                 + middleInitial + ", lastName=" + lastName + ", phone=" + phone + ", fax=" + fax + ", cellular="
802                 + cellular + ", email=" + email + ", addressId=" + addressId + ", alertMethodCd=" + alertMethodCd
803                 + ", hrid=" + hrid + ", orgUserId=" + orgUserId + ", orgCode=" + orgCode + ", address1=" + address1
804                 + ", address2=" + address2 + ", city=" + city + ", state=" + state + ", zipCode=" + zipCode
805                 + ", country=" + country + ", orgManagerUserId=" + orgManagerUserId + ", locationClli=" + locationClli
806                 + ", businessCountryCode=" + businessCountryCode + ", businessCountryName=" + businessCountryName
807                 + ", businessUnit=" + businessUnit + ", businessUnitName=" + businessUnitName + ", department="
808                 + department + ", departmentName=" + departmentName + ", companyCode=" + companyCode + ", company="
809                 + company + ", zipCodeSuffix=" + zipCodeSuffix + ", jobTitle=" + jobTitle + ", commandChain="
810                 + commandChain + ", siloStatus=" + siloStatus + ", costCenter=" + costCenter + ", financialLocCode="
811                 + financialLocCode + ", loginId=" + loginId + ", loginPwd=" + loginPwd + ", lastLoginDate="
812                 + lastLoginDate + ", active=" + active + ", internal=" + internal + ", selectedProfileId="
813                 + selectedProfileId + ", timeZoneId=" + timeZoneId + ", online=" + online + ", chatId=" + chatId
814                 + ", isGuest=" + isGuest + ", userApps=" + userApps + ", pseudoRoles=" + pseudoRoles + "]";
815     }
816
817 }