You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

116 lines
7.6 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[ws_proc_ChangePassword] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE PROCEDURE [dbo].[ws_proc_ChangePassword]
  9. @AGENT_CODE VARCHAR(50),
  10. @USER_ID VARCHAR(50),
  11. @PASSWORD VARCHAR(50),
  12. @NEW_PASSWORD VARCHAR(50),
  13. @AGENT_SESSION_ID VARCHAR(50)
  14. AS
  15. SET NOCOUNT ON;
  16. DECLARE @errCode INT,@NEW_PASSWORDENCRYPT VARCHAR(100)
  17. EXEC ws_proc_checkAuthntication @USER_ID,@PASSWORD,@AGENT_CODE,@errCode OUT
  18. IF (@errCode=1 )
  19. BEGIN
  20. SELECT 1002 CODE
  21. , 'Authentication Fail' MESSAGE
  22. , AGENT_TXN_REF_ID = @AGENT_SESSION_ID
  23. RETURN
  24. END
  25. ----IF EXISTS(SELECT 'A' FROM applicationUsers WITH (NOLOCK) WHERE
  26. ---- userName = @USER_ID AND forceChangePwd = 'Y')
  27. ---- BEGIN
  28. ---- SELECT 1002 CODE
  29. ---- , 'You must first change your password and try again!' MESSAGE
  30. ---- , AGENT_TXN_REF_ID = @AGENT_SESSION_ID
  31. ---- RETURN
  32. ----END
  33. SET @NEW_PASSWORDENCRYPT =dbo.FNAEncryptString(@NEW_PASSWORD)
  34. BEGIN
  35. IF @NEW_PASSWORD IS NULL
  36. BEGIN
  37. SELECT 1001 CODE
  38. ,'NEW PASSWORD Field is Required' MESSAGE
  39. , AGENT_TXN_REF_ID = @AGENT_SESSION_ID
  40. RETURN;
  41. END
  42. IF @AGENT_SESSION_ID IS NULL
  43. BEGIN
  44. SELECT 1001 CODE
  45. ,'AGENT SESSION ID Field is Required' MESSAGE
  46. , AGENT_TXN_REF_ID = @AGENT_SESSION_ID
  47. RETURN;
  48. END
  49. DECLARE @pwdHistoryNum INT = NULL
  50. DECLARE @tempPwdTable TABLE(pwd VARCHAR(50))
  51. SELECT @pwdHistoryNum = pwdHistoryNum FROM passwordFormat WITH(NOLOCK)
  52. DECLARE @sql VARCHAR(MAX)
  53. SET @sql = 'SELECT TOP ' + CAST(@pwdHistoryNum AS VARCHAR) + ' pwd FROM passwordHistory WITH(NOLOCK) WHERE userName = ''' + @USER_ID + ''' ORDER BY createdDate DESC'
  54. INSERT INTO @tempPwdTable
  55. EXEC(@sql)
  56. IF @NEW_PASSWORD = @PASSWORD
  57. BEGIN
  58. SELECT 1002 CODE
  59. , 'Password has been already used previously. Please enter the new one.' MESSAGE
  60. , AGENT_TXN_REF_ID = @AGENT_SESSION_ID
  61. RETURN
  62. END
  63. IF @NEW_PASSWORDENCRYPT IN (SELECT pwd FROM @tempPwdTable)
  64. BEGIN
  65. SELECT 1002 CODE
  66. , 'Password has been already used previously. Please enter the new one.' MESSAGE
  67. , AGENT_TXN_REF_ID = @AGENT_SESSION_ID
  68. RETURN
  69. END
  70. ------Validate Password From Password Policy---------------------------------------------------------------
  71. IF(SELECT TOP 1 errorCode FROM dbo.FNAValidatePassword(@NEW_PASSWORD)) <> 0
  72. BEGIN
  73. SELECT '1001' CODE, errorMsg MESSAGE, AGENT_TXN_REF_ID = @AGENT_SESSION_ID
  74. FROM dbo.FNAValidatePassword(@NEW_PASSWORD)
  75. RETURN
  76. END
  77. -------------------------------------------------------------------------------------------------------
  78. UPDATE applicationUsers SET
  79. pwd = @NEW_PASSWORDENCRYPT
  80. ,lastPwdChangedOn = GETDATE()
  81. ,forceChangePwd = 'N'
  82. WHERE [userName]= @USER_ID
  83. --Keep password History---------------------------------------------------------------------
  84. INSERT INTO passwordHistory( userName,pwd,createdDate)
  85. SELECT @USER_ID, @NEW_PASSWORDENCRYPT, GETDATE()
  86. ---------------------------------------------------------------------------------------------
  87. ----UPDATE irh_ime_plus_01.dbo.agentsub SET
  88. ---- User_pwd = dbo.FNAEncryptString(@pwd)
  89. ---- ,lastdateChanged = GETDATE()
  90. ----WHERE User_login_Id = @userName
  91. SELECT CODE = '0'
  92. , MESSAGE = 'Your password is changed. New Password will take effect next time when login.'
  93. , AGENT_TXN_REF_ID = @AGENT_SESSION_ID
  94. END
  95. --EXEC ws_proc_ChangePassword @AGENT_CODE='IMEAM01',@USER_ID='apialmirqab',@PASSWORD='apialmirqab123',@NEW_PASSWORD='ime1234',@AGENT_SESSION_ID='1234567'
  96. --EXEC ws_proc_ChangePassword @AGENT_CODE='IMEAM01',@USER_ID='apialmirqab',@PASSWORD='ime1234',@NEW_PASSWORD='apialmirqab123',@AGENT_SESSION_ID='1234567'
  97. GO