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.

85 lines
5.6 KiB

1 year ago
  1. USE [FastMoneyPro_Remit]
  2. GO
  3. /****** Object: StoredProcedure [dbo].[procAPI_checkAuthentication] Script Date: 9/27/2019 1:30:14 PM ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. /*
  9. exec [proc_applicationUsers] 'i', NULL, NULL, 'admin', 'admin', @isActive = 'Y',@pwdChangeDays = 20,@pwdChangeWarningDays = 10
  10. */
  11. CREATE proc [dbo].[procAPI_checkAuthentication]
  12. @flag VARCHAR(50) = NULL
  13. ,@user VARCHAR(30) = NULL
  14. ,@userName VARCHAR(30) = NULL
  15. ,@pwd VARCHAR(50) = NULL
  16. ,@agentCode VARCHAR(10) = NULL
  17. ,@userCode INT = NULL
  18. AS
  19. /*
  20. @flag
  21. s = select all (with dynamic filters)
  22. i = insert
  23. u = update
  24. a = select by role id
  25. d = delete by role id
  26. l = login
  27. r = reset password --@custodian_id, @user, @pwd
  28. cp = change password --@user, @pwd, @oldPwd
  29. loc = Lock
  30. cu = check user
  31. lo = Log Out
  32. [custodian]
  33. */
  34. SET NOCOUNT ON;
  35. SET XACT_ABORT ON;
  36. BEGIN TRY
  37. IF @flag = 'l'
  38. BEGIN
  39. IF NOT EXISTS(SELECT 'X' FROM applicationUsers WITH(NOLOCK) WHERE userName = @userName AND ISNULL(isActive, 'N') = 'Y')
  40. BEGIN
  41. EXEC proc_errorHandler 1001, 'Invalid Username/Password/AgentCode/User Code', NULL
  42. RETURN
  43. END
  44. IF NOT EXISTS(SELECT 'X' FROM applicationUsers WITH(NOLOCK) WHERE userName = @userName AND pwd = dbo.FNAEncryptString(@pwd) AND ISNULL(isActive, 'N') = 'Y')
  45. BEGIN
  46. EXEC proc_errorHandler 1002, 'Invalid Username/Password/AgentCode/User Code', NULL
  47. RETURN
  48. END
  49. IF NOT EXISTS(SELECT 'X' FROM applicationUsers WITH(NOLOCK) WHERE userName = @userName AND pwd = dbo.FNAEncryptString(@pwd) AND userId = @userCode AND ISNULL(isActive, 'N') = 'Y')
  50. BEGIN
  51. EXEC proc_errorHandler 1003, 'Invalid Username/Password/AgentCode/User Code', NULL
  52. RETURN
  53. END
  54. IF NOT EXISTS(SELECT 'X' FROM applicationUsers WITH(NOLOCK) WHERE userName = @userName AND pwd = dbo.FNAEncryptString(@pwd) AND userId = @userCode AND agentCode = @agentCode AND ISNULL(isActive, 'N') = 'Y')
  55. BEGIN
  56. EXEC proc_errorHandler 1004, 'Invalid Username/Password/AgentCode/User Code', NULL
  57. RETURN
  58. END
  59. IF NOT EXISTS(SELECT 'X' FROM applicationUsers WITH(NOLOCK) WHERE userName = @userName AND CAST(GETDATE() AS TIME) BETWEEN loginTime AND logoutTime)
  60. BEGIN
  61. EXEC proc_errorHandler 1005, 'Not permitted for logon at this time', NULL
  62. RETURN
  63. END
  64. IF EXISTS(SELECT 'X' FROM applicationUsers WITH(NOLOCK) WHERE userName = @userName AND ISNULL(isLocked, 'N') = 'Y')
  65. BEGIN
  66. EXEC proc_errorHandler 1006, 'User is locked', NULL
  67. RETURN
  68. END
  69. EXEC proc_errorHandler 0, 'User Authentication Valid', NULL
  70. END
  71. END TRY
  72. BEGIN CATCH
  73. IF @@TRANCOUNT > 0
  74. ROLLBACK TRANSACTION
  75. SELECT 1 errorCode, ERROR_MESSAGE() mes, null id
  76. END CATCH
  77. GO