Skip to content

Commit 8186c36

Browse files
committed
fix: implement default password handling and remove env variable dependency
1 parent cd54f94 commit 8186c36

1 file changed

Lines changed: 46 additions & 6 deletions

File tree

src/components/UserProfile/AddNewUserProfile/UserProfileAdd.jsx

Lines changed: 46 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ import { ENDPOINTS } from 'utils/URL';
4747

4848
const patt = RegExp(/^([\w.%+-]+)@([\w-]+\.)+([\w]{2,})$/i);
4949
const DATE_PICKER_MIN_DATE = '01/01/2010';
50+
const DEFAULT_PASSWORD = '123Welcome!';
5051

5152
class UserProfileAdd extends Component {
5253
constructor(props) {
@@ -81,6 +82,7 @@ class UserProfileAdd extends Component {
8182
createdDate: new Date(),
8283
actualEmail: '',
8384
actualPassword: '',
85+
defaultPassword: DEFAULT_PASSWORD,
8486
startDate: new Date(),
8587
actualConfirmedPassword: '',
8688
},
@@ -93,6 +95,7 @@ class UserProfileAdd extends Component {
9395
actualEmail: 'Actual Email is required',
9496
actualPassword: 'Actual Password is required',
9597
actualConfirmedPassword: 'Actual Confirmed Password is required',
98+
defaultPassword: 'Default Password is required',
9699
jobTitle: 'Job Title is required',
97100
},
98101
timeZoneFilter: '',
@@ -161,6 +164,7 @@ class UserProfileAdd extends Component {
161164
actualPassword,
162165
actualConfirmedPassword,
163166
jobTitle,
167+
defaultPassword,
164168
} = this.state.userProfile;
165169

166170
const darkMode = this.props.darkMode;
@@ -368,6 +372,25 @@ class UserProfileAdd extends Component {
368372
</FormGroup>
369373
</Col>
370374
</Row>
375+
<Row className="user-add-row">
376+
<Col md={{ size: 4 }} className="text-md-right my-2">
377+
<Label className={fontColor}>Default Password</Label>
378+
</Col>
379+
<Col md="6">
380+
<FormGroup>
381+
<CommonInput
382+
type="password"
383+
name="defaultPassword"
384+
id="defaultPassword"
385+
value={DEFAULT_PASSWORD}
386+
disabled
387+
readOnly
388+
389+
className="d-flex justify-start items-start"
390+
/>
391+
</FormGroup>
392+
</Col>
393+
</Row>
371394
{(role === 'Administrator' || role === 'Owner') && (
372395
<>
373396
<Row className="user-add-row">
@@ -402,7 +425,7 @@ class UserProfileAdd extends Component {
402425
value={actualPassword}
403426
onChange={(e) => this.handleUserProfile(e)}
404427
placeholder="Actual Password"
405-
invalid={!!this.state.formErrors.actualPassword ? this.state.formErrors.actualPassword : ""}
428+
invalid={!!this.state.formErrors.actualPassword}
406429
className="d-flex justify-start items-start"
407430
/>
408431
</FormGroup>
@@ -697,13 +720,18 @@ class UserProfileAdd extends Component {
697720
const firstLength = this.state.userProfile.firstName !== '';
698721
const lastLength = this.state.userProfile.lastName !== '';
699722
const phone = this.state.userProfile.phoneNumber;
723+
const role = this.state.userProfile.role;
724+
const defaultPassword = this.state.userProfile.defaultPassword;
700725

701726
if (phone === null) {
702727
toast.error('Phone Number is required');
703728
return false;
704729
} else if (this.state.teamCode && !this.state.codeValid) {
705730
toast.error('Team Code is invalid');
706731
return false;
732+
} else if (role !== 'Administrator' && role !== 'Owner' && !defaultPassword) {
733+
toast.error('Default Password is required for non-admin users');
734+
return false;
707735
} else if (firstLength && lastLength && phone.length >= 9) {
708736
return true;
709737
} else {
@@ -746,11 +774,11 @@ class UserProfileAdd extends Component {
746774
actualEmail,
747775
actualPassword,
748776
startDate,
749-
actualConfirmedPassword
777+
actualConfirmedPassword,
750778
} = that.state.userProfile;
751779

752780
const userData = {
753-
password: process.env.REACT_APP_DEF_PWD,
781+
password: DEFAULT_PASSWORD,
754782
role: role,
755783
firstName: firstName,
756784
lastName: lastName,
@@ -771,8 +799,8 @@ class UserProfileAdd extends Component {
771799
allowsDuplicateName: allowsDuplicateName,
772800
createdDate: createdDate,
773801
teamCode: this.state.teamCode,
774-
actualEmail: actualEmail,
775-
actualPassword: actualPassword,
802+
actualEmail: role === 'Administrator' || role === 'Owner' ? actualEmail : '',
803+
actualPassword: role === 'Administrator' || role === 'Owner' ? actualPassword : '',
776804
startDate: startDate,
777805
};
778806

@@ -1225,6 +1253,18 @@ class UserProfileAdd extends Component {
12251253
},
12261254
});
12271255
break;
1256+
case 'defaultPassword':
1257+
this.setState({
1258+
userProfile: {
1259+
...userProfile,
1260+
defaultPassword: event.target.value,
1261+
},
1262+
formErrors: {
1263+
...formErrors,
1264+
defaultPassword: event.target.value.length > 0 ? '' : 'Default Password is required',
1265+
},
1266+
});
1267+
break;
12281268
default:
12291269
this.setState({
12301270
...userProfile,
@@ -1252,4 +1292,4 @@ export default connect(mapStateToProps, {
12521292
addTeamMember,
12531293
fetchAllProjects,
12541294
hasPermission,
1255-
})(UserProfileAdd);
1295+
})(UserProfileAdd);

0 commit comments

Comments
 (0)