Guest User

Untitled

a guest
Dec 18th, 2017
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.65 KB | None | 0 0
  1. switch (action.type) {
  2. // ...
  3. case 'CHECK_PASSWORD': {
  4. // the following should probably be configurable settings
  5. // v v v v v v v v v v
  6. const minPasswordLength = 8
  7. const maxPasswordLength = 30
  8. const pwRegSpecial = /[_:!#$%=+<>-]/
  9. const pwBadChars = /[^\w:!#$%=+<>-]/
  10. const pwRegLower = /[a-z]/
  11. const pwRegUpper = /[A-Z]/
  12. const pwRegNumber = /[\d]/
  13. const PWD_ERROR = '1'
  14. const PWD_VALID = '2'
  15. // ^ ^ ^ ^ ^ ^ ^ ^ ^ ^
  16.  
  17. const pass = action.payload.value
  18. const username = state.userObj.Username.toLowerCase()
  19. const pwOk = [
  20. // 0
  21. pass.length < minPasswordLength ? PWD_ERROR : PWD_VALID,
  22. // 1
  23. pass.length > maxPasswordLength ? PWD_ERROR : PWD_VALID,
  24. // 2
  25. !pwRegSpecial.test(pass) || pwBadChars.test(pass) ? PWD_ERROR : PWD_VALID,
  26. // 3
  27. !pwRegLower.test(pass) ? PWD_ERROR : PWD_VALID,
  28. // 4
  29. !pwRegUpper.test(pass) ? PWD_ERROR : PWD_VALID,
  30. // 5
  31. !pwRegNumber.test(pass) ? PWD_ERROR : PWD_VALID,
  32. // 6
  33. username.includes(pass.toLowerCase()) ||
  34. pass.toLowerCase().includes(username)
  35. ? PWD_ERROR
  36. : PWD_VALID,
  37. ]
  38.  
  39. let passStatus
  40. if (pwOk.includes('1')) {
  41. passStatus = {
  42. class: 'sl-text-error',
  43. text: 'Password does not meet requirements',
  44. }
  45. } else {
  46. passStatus = {
  47. class: 'slds-success',
  48. text: 'Password meets requirements',
  49. }
  50. }
  51.  
  52. newObj = state.userObj
  53. newObj[action.payload.apiName] = action.payload.value
  54. return Object.assign({}, state, {
  55. passwordOk: pwOk,
  56. passwordStatus: passStatus,
  57. userObj: newObj,
  58. })
  59. }
  60.  
  61. // ...
  62. default:
  63. }
Add Comment
Please, Sign In to add comment