Fix sql injection vulnerability
[portal.git] / ecomp-portal-FE-os / client / src / views / header / profile-edit-dialogs / profile-edit.controller.js
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 'use strict';
39 (function () {
40     class EditProfileModalCtrl {
41         constructor($log,ngDialog,usersService,confirmBoxService,adminsService) {
42                 this.firstName ='';
43                 this.middleName ='';
44                 this.lastName ='';
45                 this.email ='';
46                 this.loginId ='';
47                 this.loginPwd ='';
48                 this.confirmLoginPwd=''
49                 this.isLoading = false;
50                 let getUser  = () => {
51                         this.isLoading = true;
52                         usersService.getLoggedInUser()
53                 .then(user=> {
54                         var data = user.response;
55                         console.log(data);
56                         this.firstName =data.firstName;
57                         this.middleName =data.middleName;
58                         this.lastName =data.lastName;
59                         this.email =data.email;
60                         this.loginId =data.loginId;
61                         this.loginPwd =data.loginPassword;
62                         this.isLoading = false;
63                 }).catch(err=> {
64                         $log.error('EditProfileModalCtrl.getUser:: Error retrieving ECMOP portal user: ' + err);
65                 });
66             }
67                 getUser();
68                 
69                 this.save = ()=>{
70                         var profileDetail ={
71                                         firstName :     this.firstName,
72                                 middleName :this.middleName,
73                         lastName :this.lastName,
74                         email :this.email,
75                         loginId :this.loginId,
76                         loginPassword :this.loginPwd
77                         }
78                         if (this.firstName =='' || this.lastName == '' || this.email == '' || this.loginId =='' || this.loginPwd ==''|| this.confirmLoginPwd ==''){
79                                 var warningMsg = "Please enter a value for all fields marked with *.";
80                                 confirmBoxService.showInformation(warningMsg).then(isConfirmed => {return;});
81                                 return;
82                         } else if (this.loginPwd != this.confirmLoginPwd) {
83                                 var warningMsg = "Passwords do not match, please try again.";
84                                 confirmBoxService.showInformation(warningMsg).then(isConfirmed => {return;});
85                                 return;
86                         } else {
87                                 // check password length complexity.
88                                 var warningMsg = adminsService.isComplexPassword(this.loginPwd);
89                                 if (warningMsg != null) {
90                                         confirmBoxService.showInformation(warningMsg).then(isConfirmed => {return;});
91                                         return;
92                                 }
93                         }
94                         usersService.modifyLoggedInUser(profileDetail).then(res=> {
95                                 confirmBoxService.showInformation("Profile detail updated").then(isConfirmed => {return;});
96                         }).catch(err=> {
97                                 $log.error('EditProfileModalCtrl.getUser:: Error retrieving ECMOP portal user: ' + err);
98                                 confirmBoxService.showInformation("Error while updating profile detail: "+ err).then(isConfirmed => {return;});
99                         });
100                 }
101         }
102     }
103     EditProfileModalCtrl.$inject = ['$log', 'ngDialog','usersService','confirmBoxService','adminsService'];
104     angular.module('ecompApp').controller('EditProfileModalCtrl', EditProfileModalCtrl);
105 })();