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.
691 lines
46 KiB
691 lines
46 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[proc_applicationIntlLogin] Script Date: 10/19/2023 5:58:46 PM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
ALTER PROC [dbo].[proc_applicationIntlLogin]
|
|
@flag VARCHAR(50) = NULL
|
|
,@userId VARCHAR(10) = NULL
|
|
,@user VARCHAR(30) = NULL
|
|
,@userName VARCHAR(30) = NULL
|
|
,@agentCode VARCHAR(20) = NULL
|
|
,@pwd VARCHAR(255) = NULL
|
|
,@UserInfoDetail VARCHAR(MAX) = NULL
|
|
,@employeeId VARCHAR(10) = NULL
|
|
,@ipAddress VARCHAR(100) = NULL
|
|
,@dcLogindcUserName VARCHAR(MAX) = NULL
|
|
,@dcSerialNumber VARCHAR(100) = NULL
|
|
,@dcUserName VARCHAR(100) = NULL
|
|
,@LOGIN_COUNTRY NVARCHAR(50) = NULL
|
|
,@LOGIN_COUNTRY_CODE NVARCHAR(30) = NULL
|
|
,@LOGIN_CITY NVARCHAR(200) = NULL
|
|
,@LOGIN_REGION NVARCHAR(200) = NULL
|
|
,@LOGIN_LAT NVARCHAR(20) = NULL
|
|
,@LOGIN_LONG NVARCHAR(20) = NULL
|
|
,@LOGIN_TIMEZONE NVARCHAR(30) = NULL
|
|
,@LOGIN_ZIPCODDE NVARCHAR(30) = NULL
|
|
,@OTP_USED VARCHAR(10) = NULL
|
|
,@IS_OTP_ENABLED CHAR(1) = NULL
|
|
,@selectedAgentId INT = NULL
|
|
AS
|
|
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
|
|
DECLARE
|
|
@UserData VARCHAR(200)
|
|
,@parentAgentId VARCHAR(200)
|
|
,@agentType VARCHAR(20)
|
|
,@actAsBranch VARCHAR(20)
|
|
,@lastPwdChangedOn DATETIME
|
|
,@forceChangePwd CHAR(1)
|
|
,@pwdChangeDays VARCHAR(20)
|
|
,@msg VARCHAR(2000)
|
|
,@pwdChangeWarningDays VARCHAR(5)
|
|
,@agentId INT
|
|
|
|
DECLARE
|
|
@countryId INT
|
|
,@country VARCHAR(50)
|
|
,@branch INT
|
|
,@branchName VARCHAR(100)
|
|
,@agent INT
|
|
,@superAgent INT
|
|
,@superAgentName VARCHAR(100)
|
|
,@mapCodeInt VARCHAR(8)
|
|
,@parentMapCodeInt VARCHAR(8)
|
|
,@agentName VARCHAR(250)
|
|
,@settlingAgent INT
|
|
,@parentId INT
|
|
,@mapCodeDom VARCHAR(8)
|
|
,@isHeadOffice CHAR(1)
|
|
,@superAgentId VARCHAR(10)
|
|
|
|
DECLARE
|
|
@agentActiveStatus CHAR(1)
|
|
,@branchActiveStatus CHAR(1)
|
|
,@loginUserName VARCHAR(100)
|
|
,@loginPwd VARCHAR(100)
|
|
,@userActive CHAR(1)
|
|
,@loginUserAgtCode VARCHAR(100)
|
|
,@loginUserAgtId VARCHAR(100)
|
|
,@empId VARCHAR(100)
|
|
,@isLocked CHAR(1)
|
|
,@isDeleted CHAR(1)
|
|
,@loginTime TIME
|
|
,@logoutTime TIME
|
|
,@startDate DATETIME
|
|
,@endDate DATETIME
|
|
,@lastLoginTs DATETIME
|
|
,@lockUserDays INT
|
|
,@userDcSerialNumber VARCHAR(100)
|
|
,@agentLocation INT
|
|
,@agentGrp INT
|
|
,@agentEmail VARCHAR(100)
|
|
,@agentPhone VARCHAR(100)
|
|
,@invalidPwdCount TINYINT
|
|
|
|
--## Intl Agent Login
|
|
IF @flag = 'lfai'
|
|
BEGIN
|
|
DECLARE @rowId BIGINT, @selectedAgentName VARCHAR(150)
|
|
|
|
IF @selectedAgentId IS NOT NULL
|
|
SELECT @selectedAgentName = AGENTNAME FROM AGENTMASTER (NOLOCK) WHERE AGENTID = @selectedAgentId
|
|
|
|
SET @UserData ='User:' + @userName + ', UserCode:' + CAST(ISNULL(@employeeId, 'OTP ENABLED') AS VARCHAR(20)) + ', SelectedAgent:' + ISNULL(@selectedAgentName, '')
|
|
|
|
SELECT
|
|
@userId = userId
|
|
,@loginUserName = userName
|
|
,@userActive = ISNULL(au.isActive, 'N')
|
|
,@loginPwd = pwd
|
|
,@loginUserAgtCode = au.agentCode
|
|
,@loginUserAgtId = au.agentId
|
|
,@empId = employeeId
|
|
,@isLocked = ISNULL(isLocked, 'N')
|
|
,@loginTime = loginTime
|
|
,@logoutTime = logoutTime
|
|
,@lastLoginTs = lastLoginTs
|
|
,@agentType = am.agentType
|
|
,@actAsBranch = am.actAsBranch
|
|
,@agentId = am.agentId
|
|
,@agentActiveStatus = ISNULL(am.isActive, 'N')
|
|
,@userDcSerialNumber= dcSerialNumber
|
|
,@agentLocation = am.agentLocation
|
|
,@agentGrp = am.agentGrp
|
|
,@forceChangePwd = au.forceChangePwd
|
|
,@invalidPwdCount = ISNULL(AU.wrongPwdCount, 0)
|
|
FROM applicationUsers au WITH(NOLOCK)
|
|
INNER JOIN agentMaster am WITH(NOLOCK) ON au.agentId = am.agentId
|
|
WHERE userName = @userName and ISNULL(au.isDeleted, 'N') = 'N'
|
|
AND AM.AGENTCOUNTRY <> 'NEPAL'
|
|
|
|
IF ISNULL(@invalidPwdCount, 0) > 3
|
|
BEGIN
|
|
UPDATE applicationUsers SET
|
|
wrongPwdCount = ISNULL(wrongPwdCount, 0) + 1
|
|
WHERE userId = @userId
|
|
|
|
SELECT 1 errorCode, 'You are locked due to Continious Invalid login attempts. Please, contact your administrator' mes, @userName id, 0 rowId
|
|
RETURN;
|
|
END
|
|
|
|
SELECT
|
|
@startDate = startDate
|
|
,@endDate = endDate
|
|
FROM userLockDetail WITH(NOLOCK)
|
|
WHERE userId = @userId
|
|
AND ISNULL(isDeleted,'N') = 'N'
|
|
|
|
IF @userId IS NULL
|
|
BEGIN
|
|
SET @UserInfoDetail = 'Reason = Login fails, Incorrect user name.-:::-' + @UserInfoDetail
|
|
|
|
EXEC proc_applicationLogs
|
|
@flag = 'login',
|
|
@logType = 'Login fails',
|
|
@createdBy = @userName,
|
|
@Reason = 'Invalid Username',
|
|
@UserData = @UserData,
|
|
@fieldValue = @UserInfoDetail,
|
|
@agentId = @agentId,
|
|
@IP = @ipAddress,
|
|
@dcSerialNumber = @dcSerialNumber,
|
|
@dcUserName = @dcUserName ,
|
|
@LOGIN_COUNTRY = @LOGIN_COUNTRY,
|
|
@LOGIN_COUNTRY_CODE = @LOGIN_COUNTRY_CODE,
|
|
@LOGIN_CITY = @LOGIN_CITY,
|
|
@LOGIN_REGION = @LOGIN_REGION,
|
|
@LOGIN_LAT = @LOGIN_LAT,
|
|
@LOGIN_LONG = @LOGIN_LONG,
|
|
@LOGIN_TIMEZONE = @LOGIN_TIMEZONE,
|
|
@LOGIN_ZIPCODDE = @LOGIN_ZIPCODDE,
|
|
@OTP_USED = @OTP_USED,
|
|
@rowId = @rowId OUT
|
|
|
|
SELECT 1 errorCode, 'Login fails, Incorrect user name or password.' mes, @userName id, @rowId rowId
|
|
RETURN
|
|
END
|
|
|
|
--IF @LOGIN_COUNTRY <> 'Nepal' --AND @userName <> 'raman'
|
|
--BEGIN
|
|
-- SELECT 1 errorCode, 'System is currently down, due to system maintainance.' mes, @userName id, @rowId rowId
|
|
-- RETURN
|
|
--END
|
|
-- ## Except IME EXCHANGE COUNTER- TIA
|
|
--IF @userDcSerialNumber IS NOT NULL AND @userDcSerialNumber <> @dcSerialNumber AND @agentId <> '9943'
|
|
--BEGIN
|
|
-- SELECT 1 errorCode, 'Login fails, Not a valid Digital Certificate for this user.' mes, @userName id
|
|
-- SET @UserInfoDetail = 'Reason = Login fails, Not a valid Digital Certificate for this user.-:::-'+@UserInfoDetail
|
|
|
|
-- EXEC proc_applicationLogs
|
|
-- @flag = 'login',
|
|
-- @logType = 'Login fails',
|
|
-- @createdBy = @userName,
|
|
-- @Reason = 'Not a valid Digital Certificate for this user',
|
|
-- @UserData = @UserData,
|
|
-- @fieldValue = @UserInfoDetail,
|
|
-- @agentId = @agentId,
|
|
-- @IP = @ipAddress,
|
|
-- @dcSerialNumber = @dcSerialNumber,
|
|
-- @dcUserName = @dcUserName
|
|
-- RETURN
|
|
--END
|
|
|
|
--IF @dcSerialNumber IS NOT NULL AND @dcSerialNumber not like '%00-05-00-00%'
|
|
--BEGIN
|
|
|
|
-- SELECT 1 errorCode, 'Login fails, Not a valid IME CERTIFICATE, Please Use Valid IME Certificate.' mes, @userName id
|
|
-- SET @UserInfoDetail = 'Reason = Login fails, Not a valid IME CERTIFICATE-:::-' + @UserInfoDetail
|
|
|
|
-- EXEC proc_applicationLogs
|
|
-- @flag = 'login',
|
|
-- @logType = 'Login fails',
|
|
-- @createdBy = @userName,
|
|
-- @Reason = 'Not a valid IME CERTIFICATE',
|
|
-- @UserData = @UserData,
|
|
-- @fieldValue = @UserInfoDetail,
|
|
-- @agentId = @agentId,
|
|
-- @IP = @ipAddress,
|
|
-- @dcSerialNumber = @dcSerialNumber,
|
|
-- @dcUserName = @dcUserName
|
|
|
|
-- RETURN
|
|
--END
|
|
|
|
IF @userActive = 'N'
|
|
BEGIN
|
|
SET @UserInfoDetail = 'Reason = User has not been approved.-:::-' + @UserInfoDetail
|
|
|
|
EXEC proc_applicationLogs
|
|
@flag = 'login',
|
|
@logType = 'Login fails',
|
|
@createdBy = @userName,
|
|
@Reason = 'User is not active',
|
|
@UserData = @UserData,
|
|
@fieldValue = @UserInfoDetail,
|
|
@agentId = @agentId,
|
|
@IP = @ipAddress,
|
|
@dcSerialNumber = @dcSerialNumber,
|
|
@dcUserName = @dcUserName ,
|
|
@LOGIN_COUNTRY = @LOGIN_COUNTRY,
|
|
@LOGIN_COUNTRY_CODE = @LOGIN_COUNTRY_CODE,
|
|
@LOGIN_CITY = @LOGIN_CITY,
|
|
@LOGIN_REGION = @LOGIN_REGION,
|
|
@LOGIN_LAT = @LOGIN_LAT,
|
|
@LOGIN_LONG = @LOGIN_LONG,
|
|
@LOGIN_TIMEZONE = @LOGIN_TIMEZONE,
|
|
@LOGIN_ZIPCODDE = @LOGIN_ZIPCODDE,
|
|
@OTP_USED = @OTP_USED,
|
|
@rowId = @rowId OUT
|
|
|
|
SELECT 1 errorCode, 'User is not active.' mes, @userName id, @rowId rowId
|
|
RETURN
|
|
END
|
|
|
|
IF @agentActiveStatus = 'N'
|
|
BEGIN
|
|
SET @UserInfoDetail = 'Reason = Branch is not active.-:::-' + @UserInfoDetail
|
|
EXEC proc_applicationLogs
|
|
@flag = 'login',
|
|
@logType = 'Login fails',
|
|
@createdBy = @userName,
|
|
@Reason = 'Branch is not active',
|
|
@UserData = @UserData,
|
|
@fieldValue = @UserInfoDetail,
|
|
@agentId = @agentId,
|
|
@IP = @ipAddress,
|
|
@dcSerialNumber = @dcSerialNumber,
|
|
@dcUserName = @dcUserName ,
|
|
@LOGIN_COUNTRY = @LOGIN_COUNTRY,
|
|
@LOGIN_COUNTRY_CODE = @LOGIN_COUNTRY_CODE,
|
|
@LOGIN_CITY = @LOGIN_CITY,
|
|
@LOGIN_REGION = @LOGIN_REGION,
|
|
@LOGIN_LAT = @LOGIN_LAT,
|
|
@LOGIN_LONG = @LOGIN_LONG,
|
|
@LOGIN_TIMEZONE = @LOGIN_TIMEZONE,
|
|
@LOGIN_ZIPCODDE = @LOGIN_ZIPCODDE,
|
|
@OTP_USED = @OTP_USED,
|
|
@rowId = @rowId OUT
|
|
|
|
SELECT 1 errorCode, 'Your account is blocked.' mes, @userName id, @rowId rowId
|
|
RETURN
|
|
END
|
|
|
|
DECLARE @attemptsCount INT
|
|
SELECT TOP 1 @attemptsCount = loginAttemptCount, @lockUserDays = ISNULL(lockUserDays,30) FROM passwordFormat WITH(NOLOCK)
|
|
|
|
IF (@loginPwd <> ISNULL(dbo.FNAEncryptString(@pwd), ''))
|
|
BEGIN
|
|
UPDATE applicationUsers SET
|
|
wrongPwdCount = ISNULL(wrongPwdCount, 0) + 1
|
|
WHERE userId = @userId
|
|
|
|
SET @UserInfoDetail = 'Reason = Login fails, Incorrect password.-:::-'+@UserInfoDetail
|
|
|
|
EXEC proc_applicationLogs
|
|
@flag = 'login',
|
|
@logType = 'Login fails',
|
|
@createdBy = @userName,
|
|
@Reason = 'Incorrect password',
|
|
@UserData = @UserData,
|
|
@fieldValue = @UserInfoDetail,
|
|
@agentId = @agentId,
|
|
@IP = @ipAddress,
|
|
@dcSerialNumber = @dcSerialNumber,
|
|
@dcUserName = @dcUserName ,
|
|
@LOGIN_COUNTRY = @LOGIN_COUNTRY,
|
|
@LOGIN_COUNTRY_CODE = @LOGIN_COUNTRY_CODE,
|
|
@LOGIN_CITY = @LOGIN_CITY,
|
|
@LOGIN_REGION = @LOGIN_REGION,
|
|
@LOGIN_LAT = @LOGIN_LAT,
|
|
@LOGIN_LONG = @LOGIN_LONG,
|
|
@LOGIN_TIMEZONE = @LOGIN_TIMEZONE,
|
|
@LOGIN_ZIPCODDE = @LOGIN_ZIPCODDE,
|
|
@OTP_USED = @OTP_USED,
|
|
@rowId = @rowId OUT
|
|
|
|
SET @invalidPwdCount += 1
|
|
IF @invalidPwdCount < 3
|
|
BEGIN
|
|
SELECT 2 errorCode, 'Login fails, Incorrect user name or password, attempts left ' + CAST((3 - @invalidPwdCount) AS VARCHAR) mes, @userName id, @attemptsCount ac, @rowId rowId
|
|
RETURN
|
|
END
|
|
END
|
|
|
|
IF ISNULL(@invalidPwdCount, 0) >= 3
|
|
BEGIN
|
|
UPDATE applicationUsers SET
|
|
isLocked = 'Y'
|
|
,lastLoginTs = GETDATE()
|
|
,wrongPwdCount = ISNULL(wrongPwdCount, 0) + 1
|
|
WHERE userId = @userId
|
|
|
|
SET @UserInfoDetail = 'Reason = User Locked due to Invalid login attempts.-:::-' + @UserInfoDetail
|
|
|
|
EXEC proc_applicationLogs
|
|
@flag = 'login',
|
|
@logType = 'Login fails',
|
|
@createdBy = @userName,
|
|
@Reason = 'User Locked due to Invalid login attempts.',
|
|
@UserData = @UserData,
|
|
@fieldValue = @UserInfoDetail,
|
|
@agentId = @agentId,
|
|
@IP = @ipAddress,
|
|
@dcSerialNumber = @dcSerialNumber,
|
|
@dcUserName = @dcUserName ,
|
|
@LOGIN_COUNTRY = @LOGIN_COUNTRY,
|
|
@LOGIN_COUNTRY_CODE = @LOGIN_COUNTRY_CODE,
|
|
@LOGIN_CITY = @LOGIN_CITY,
|
|
@LOGIN_REGION = @LOGIN_REGION,
|
|
@LOGIN_LAT = @LOGIN_LAT,
|
|
@LOGIN_LONG = @LOGIN_LONG,
|
|
@LOGIN_TIMEZONE = @LOGIN_TIMEZONE,
|
|
@LOGIN_ZIPCODDE = @LOGIN_ZIPCODDE,
|
|
@OTP_USED = @OTP_USED,
|
|
@rowId = @rowId OUT
|
|
|
|
SELECT 1 errorCode, 'You are locked due to Continious Invalid login attempts. Please, contact your administrator' mes, @userName id, @rowId rowId
|
|
INSERT INTO userLockHistory(username, lockReason, createdBy, createdDate)
|
|
SELECT @userName, 'Your account has been locked due to Invalid login attempts', 'system', GETDATE()
|
|
RETURN;
|
|
END
|
|
|
|
--IF (@loginUserAgtCode <> ISNULL(@agentCode, ''))
|
|
--BEGIN
|
|
-- SET @UserInfoDetail = 'Reason = Login fails, Incorrect AgentCode.-:::-' + @UserInfoDetail
|
|
|
|
-- EXEC proc_applicationLogs
|
|
-- @flag = 'login',
|
|
-- @logType = 'Login fails',
|
|
-- @createdBy = @userName,
|
|
-- @Reason = 'Incorrect AgentCode',
|
|
-- @UserData = @UserData,
|
|
-- @fieldValue = @UserInfoDetail,
|
|
-- @agentId = @agentId,
|
|
-- @IP = @ipAddress,
|
|
-- @dcSerialNumber = @dcSerialNumber,
|
|
-- @dcUserName = @dcUserName ,
|
|
-- @LOGIN_COUNTRY = @LOGIN_COUNTRY,
|
|
-- @LOGIN_COUNTRY_CODE = @LOGIN_COUNTRY_CODE,
|
|
-- @LOGIN_CITY = @LOGIN_CITY,
|
|
-- @LOGIN_REGION = @LOGIN_REGION,
|
|
-- @LOGIN_LAT = @LOGIN_LAT,
|
|
-- @LOGIN_LONG = @LOGIN_LONG,
|
|
-- @LOGIN_TIMEZONE = @LOGIN_TIMEZONE,
|
|
-- @LOGIN_ZIPCODDE = @LOGIN_ZIPCODDE,
|
|
-- @OTP_USED = @OTP_USED,
|
|
-- @rowId = @rowId OUT
|
|
|
|
-- SELECT 2 errorCode, 'Login fails, Incorrect user name or password.' mes, @userName id, @attemptsCount ac, @rowId rowId
|
|
-- RETURN
|
|
--END
|
|
|
|
IF (@empId <> ISNULL(@employeeId, '')) AND ISNULL(@IS_OTP_ENABLED, 'N') = 'N'
|
|
BEGIN
|
|
SET @UserInfoDetail = 'Reason = Login fails, Incorrect userId.-:::-'+@UserInfoDetail
|
|
|
|
EXEC proc_applicationLogs
|
|
@flag = 'login',
|
|
@logType = 'Login fails',
|
|
@createdBy = @userName,
|
|
@Reason = 'Incorrect userId',
|
|
@UserData = @UserData,
|
|
@fieldValue = @UserInfoDetail,
|
|
@agentId = @agentId,
|
|
@IP = @ipAddress,
|
|
@dcSerialNumber = @dcSerialNumber,
|
|
@dcUserName = @dcUserName ,
|
|
@LOGIN_COUNTRY = @LOGIN_COUNTRY,
|
|
@LOGIN_COUNTRY_CODE = @LOGIN_COUNTRY_CODE,
|
|
@LOGIN_CITY = @LOGIN_CITY,
|
|
@LOGIN_REGION = @LOGIN_REGION,
|
|
@LOGIN_LAT = @LOGIN_LAT,
|
|
@LOGIN_LONG = @LOGIN_LONG,
|
|
@LOGIN_TIMEZONE = @LOGIN_TIMEZONE,
|
|
@LOGIN_ZIPCODDE = @LOGIN_ZIPCODDE,
|
|
@OTP_USED = @OTP_USED,
|
|
@rowId = @rowId OUT
|
|
|
|
SELECT 2 errorCode, 'Login fails, Incorrect user name or password.' mes, @userName id, @attemptsCount ac, @rowId rowId
|
|
RETURN
|
|
END
|
|
|
|
IF(@isLocked = 'Y')
|
|
BEGIN
|
|
SET @UserInfoDetail = 'Reason = Your account has been locked. Please, contact your administrator.-:::-'+@UserInfoDetail
|
|
|
|
EXEC proc_applicationLogs
|
|
@flag = 'login',
|
|
@logType = 'Login fails',
|
|
@createdBy = @userName,
|
|
@Reason = 'Your account has been locked',
|
|
@UserData = @UserData,
|
|
@fieldValue = @UserInfoDetail,
|
|
@agentId = @agentId,
|
|
@IP = @ipAddress,
|
|
@dcSerialNumber = @dcSerialNumber,
|
|
@dcUserName = @dcUserName ,
|
|
@LOGIN_COUNTRY = @LOGIN_COUNTRY,
|
|
@LOGIN_COUNTRY_CODE = @LOGIN_COUNTRY_CODE,
|
|
@LOGIN_CITY = @LOGIN_CITY,
|
|
@LOGIN_REGION = @LOGIN_REGION,
|
|
@LOGIN_LAT = @LOGIN_LAT,
|
|
@LOGIN_LONG = @LOGIN_LONG,
|
|
@LOGIN_TIMEZONE = @LOGIN_TIMEZONE,
|
|
@LOGIN_ZIPCODDE = @LOGIN_ZIPCODDE,
|
|
@OTP_USED = @OTP_USED,
|
|
@rowId = @rowId OUT
|
|
|
|
SELECT 1 errorCode, 'Your account has been locked. Please, contact your administrator.' mes, @userName id, @rowId rowId
|
|
RETURN;
|
|
END
|
|
|
|
IF CAST(GETDATE() AS TIME) < @loginTime OR CAST(GETDATE() AS TIME) > @logoutTime
|
|
BEGIN
|
|
SET @UserInfoDetail = 'Reason = You are not permitted to login at this time. Please, contact your administrator-:::-' + @UserInfoDetail
|
|
|
|
EXEC proc_applicationLogs
|
|
@flag = 'login',
|
|
@logType = 'Login fails',
|
|
@createdBy = @userName,
|
|
@Reason = 'Not permitted to login at this time',
|
|
@UserData = @UserData,
|
|
@fieldValue = @UserInfoDetail,
|
|
@agentId = @agentId,
|
|
@IP = @ipAddress,
|
|
@dcSerialNumber = @dcSerialNumber,
|
|
@dcUserName = @dcUserName ,
|
|
@LOGIN_COUNTRY = @LOGIN_COUNTRY,
|
|
@LOGIN_COUNTRY_CODE = @LOGIN_COUNTRY_CODE,
|
|
@LOGIN_CITY = @LOGIN_CITY,
|
|
@LOGIN_REGION = @LOGIN_REGION,
|
|
@LOGIN_LAT = @LOGIN_LAT,
|
|
@LOGIN_LONG = @LOGIN_LONG,
|
|
@LOGIN_TIMEZONE = @LOGIN_TIMEZONE,
|
|
@LOGIN_ZIPCODDE = @LOGIN_ZIPCODDE,
|
|
@OTP_USED = @OTP_USED,
|
|
@rowId = @rowId OUT
|
|
|
|
SELECT 1 errorCode, 'You are not permitted to login at this time. Please, contact your administrator.' mes, @userName id, @rowId rowId
|
|
RETURN
|
|
END
|
|
|
|
IF (GETDATE() BETWEEN @startDate AND CONVERT(VARCHAR(20), @endDate,101) + ' 23:59:59')
|
|
BEGIN
|
|
SET @UserInfoDetail = 'Reason = You are not permitted to login at this time. Please, contact your administrator-:::-'+@UserInfoDetail
|
|
|
|
EXEC proc_applicationLogs
|
|
@flag = 'login',
|
|
@logType = 'Login fails',
|
|
@createdBy = @userName,
|
|
@Reason = 'Not permitted to login for this date',
|
|
@UserData = @UserData,
|
|
@fieldValue = @UserInfoDetail,
|
|
@agentId = @agentId,
|
|
@IP = @ipAddress,
|
|
@dcSerialNumber = @dcSerialNumber,
|
|
@dcUserName = @dcUserName ,
|
|
@LOGIN_COUNTRY = @LOGIN_COUNTRY,
|
|
@LOGIN_COUNTRY_CODE = @LOGIN_COUNTRY_CODE,
|
|
@LOGIN_CITY = @LOGIN_CITY,
|
|
@LOGIN_REGION = @LOGIN_REGION,
|
|
@LOGIN_LAT = @LOGIN_LAT,
|
|
@LOGIN_LONG = @LOGIN_LONG,
|
|
@LOGIN_TIMEZONE = @LOGIN_TIMEZONE,
|
|
@LOGIN_ZIPCODDE = @LOGIN_ZIPCODDE,
|
|
@OTP_USED = @OTP_USED,
|
|
@rowId = @rowId OUT
|
|
|
|
SELECT 1 errorCode, 'You are not permitted to login for this date. Please, contact your administrator' mes, @userName id, @rowId rowId
|
|
RETURN
|
|
END
|
|
|
|
-- Last Login date check for Locking
|
|
IF(DATEDIFF(DAY, @lastLoginTs, GETDATE()) >= @lockUserDays)
|
|
BEGIN
|
|
UPDATE applicationUsers SET
|
|
isLocked = 'Y'
|
|
,lastLoginTs = GETDATE()
|
|
WHERE userId = @userId
|
|
|
|
SET @UserInfoDetail = 'Reason = You are locked this time. Please, contact your administrator.-:::-' + @UserInfoDetail
|
|
|
|
EXEC proc_applicationLogs
|
|
@flag = 'login',
|
|
@logType = 'Login fails',
|
|
@createdBy = @userName,
|
|
@Reason = 'Not Login for fix period, now user is locked',
|
|
@UserData = @UserData,
|
|
@fieldValue = @UserInfoDetail,
|
|
@agentId = @agentId,
|
|
@IP = @ipAddress,
|
|
@dcSerialNumber = @dcSerialNumber,
|
|
@dcUserName = @dcUserName ,
|
|
@LOGIN_COUNTRY = @LOGIN_COUNTRY,
|
|
@LOGIN_COUNTRY_CODE = @LOGIN_COUNTRY_CODE,
|
|
@LOGIN_CITY = @LOGIN_CITY,
|
|
@LOGIN_REGION = @LOGIN_REGION,
|
|
@LOGIN_LAT = @LOGIN_LAT,
|
|
@LOGIN_LONG = @LOGIN_LONG,
|
|
@LOGIN_TIMEZONE = @LOGIN_TIMEZONE,
|
|
@LOGIN_ZIPCODDE = @LOGIN_ZIPCODDE,
|
|
@OTP_USED = @OTP_USED,
|
|
@rowId = @rowId OUT
|
|
|
|
SELECT 1 errorCode, 'You are locked this time. Please, contact your administrator' mes, @userName id, @rowId rowId
|
|
|
|
INSERT INTO userLockHistory(username, lockReason, createdBy, createdDate)
|
|
SELECT @userName, 'Your account has been locked due to not login for fix period', 'system', GETDATE()
|
|
RETURN;
|
|
|
|
END
|
|
|
|
UPDATE applicationUsers SET
|
|
lastLoginTs = GETDATE()
|
|
,dcSerialNumber = ISNULL(dcSerialNumber, @dcSerialNumber)
|
|
,dcUserName = ISNULL(dcUserName, @dcUserName)
|
|
WHERE [userName] = @userName
|
|
|
|
SELECT
|
|
@country = am.agentCountry
|
|
,@countryId = am.agentCountryId
|
|
,@branch = au.agentId
|
|
,@branchName = am.agentName
|
|
,@agentName = am.agentName
|
|
,@mapCodeInt = am.mapCodeInt
|
|
,@parentmapCodeInt = am.mapCodeInt
|
|
,@mapCodeDom = am.mapCodeDom
|
|
,@agentType = am.agentType
|
|
,@actAsBranch = actAsBranch
|
|
,@agent = CASE WHEN am.agentType = 2903 THEN au.agentId ELSE am.parentId END
|
|
,@superAgent = am.parentId
|
|
,@parentId = am.parentId
|
|
,@settlingAgent = CASE WHEN ISNULL(am.isSettlingAgent, 'N') = 'Y' THEN au.agentId ELSE NULL END
|
|
,@agentEmail = am.agentEmail1
|
|
,@agentPhone = am.agentPhone1
|
|
FROM agentMaster am WITH(NOLOCK)
|
|
INNER JOIN applicationUsers au WITH(NOLOCK) ON am.agentId = au.agentId
|
|
WHERE au.userName = @userName
|
|
|
|
IF @country = 'Nepal'
|
|
BEGIN
|
|
SET @UserInfoDetail = 'Reason = You are not permitted from International agent Login panel. Please, contact your administrator-:::-' + @UserInfoDetail
|
|
|
|
EXEC proc_applicationLogs
|
|
@flag = 'login',
|
|
@logType = 'Login fails',
|
|
@createdBy = @userName,
|
|
@Reason = 'Not Login for fix period, now user is locked',
|
|
@UserData = @UserData,
|
|
@fieldValue = @UserInfoDetail,
|
|
@agentId = @agentId,
|
|
@IP = @ipAddress,
|
|
@dcSerialNumber = @dcSerialNumber,
|
|
@dcUserName = @dcUserName ,
|
|
@LOGIN_COUNTRY = @LOGIN_COUNTRY,
|
|
@LOGIN_COUNTRY_CODE = @LOGIN_COUNTRY_CODE,
|
|
@LOGIN_CITY = @LOGIN_CITY,
|
|
@LOGIN_REGION = @LOGIN_REGION,
|
|
@LOGIN_LAT = @LOGIN_LAT,
|
|
@LOGIN_LONG = @LOGIN_LONG,
|
|
@LOGIN_TIMEZONE = @LOGIN_TIMEZONE,
|
|
@LOGIN_ZIPCODDE = @LOGIN_ZIPCODDE,
|
|
@OTP_USED = @OTP_USED,
|
|
@rowId = @rowId OUT
|
|
|
|
SELECT 1 errorCode, 'You are not permitted to login from International agent Login panel. Please, contact your administrator.' mes, @userName id, @rowId rowId
|
|
RETURN
|
|
END
|
|
|
|
IF(@agentType <> 2903)
|
|
BEGIN
|
|
SELECT
|
|
TOP 1
|
|
@agentName = agentName
|
|
,@parentMapCodeInt = mapCodeInt
|
|
,@superAgent = parentId
|
|
FROM agentMaster WITH(NOLOCK) WHERE agentId = @agent
|
|
END
|
|
|
|
SELECT TOP 1 @superAgentName = agentName FROM agentMaster WITH(NOLOCK) WHERE agentId = @superAgent
|
|
|
|
IF @settlingAgent IS NULL
|
|
SELECT @settlingAgent = agentId FROM agentMaster WITH(NOLOCK) WHERE agentId = @agent AND isSettlingAgent = 'Y'
|
|
|
|
EXEC proc_applicationLogs
|
|
@flag = 'login',
|
|
@logType ='Login',
|
|
@createdBy = @userName,
|
|
@Reason = 'Agent Login',
|
|
@UserData = @UserData,
|
|
@fieldValue = @UserInfoDetail,
|
|
@agentId = @agentId,
|
|
@IP = @ipAddress,
|
|
@dcSerialNumber = @dcSerialNumber,
|
|
@dcUserName = @dcUserName ,
|
|
@LOGIN_COUNTRY = @LOGIN_COUNTRY,
|
|
@LOGIN_COUNTRY_CODE = @LOGIN_COUNTRY_CODE,
|
|
@LOGIN_CITY = @LOGIN_CITY,
|
|
@LOGIN_REGION = @LOGIN_REGION,
|
|
@LOGIN_LAT = @LOGIN_LAT,
|
|
@LOGIN_LONG = @LOGIN_LONG,
|
|
@LOGIN_TIMEZONE = @LOGIN_TIMEZONE,
|
|
@LOGIN_ZIPCODDE = @LOGIN_ZIPCODDE,
|
|
@OTP_USED = @OTP_USED,
|
|
@rowId = @rowId OUT
|
|
|
|
UPDATE applicationUsers SET
|
|
wrongPwdCount = 0
|
|
WHERE userId = @userId
|
|
|
|
SELECT
|
|
TOP 1
|
|
0 errorCode
|
|
,'Login success.' mes
|
|
, @rowId rowId
|
|
,@userName Id
|
|
,au.userAccessLevel
|
|
,au.sessionTimeOutPeriod
|
|
,au.UserID
|
|
,fullName = au.firstName + ISNULL(' ' + au.middleName, '') + ISNULL(' ' + au.lastName, '')
|
|
,parentId = ISNULL(@parentId, 0)
|
|
,agentType = ISNULL(@agentType, 2901)
|
|
,settlingAgent = ISNULL(@settlingAgent, 0)
|
|
,isActAsBranch = ISNULL(@actAsBranch, 'N')
|
|
,mapCodeInt = ISNULL(@mapCodeInt, '0000')
|
|
,parentMapCodeInt = ISNULL(@parentMapCodeInt, '0000')
|
|
,mapCodeDom = ISNULL(@mapCodeDom, '0000')
|
|
,country = @country
|
|
,countryId = @countryId
|
|
,branch = @branch
|
|
,branchName = @branchName
|
|
,agent = @agent
|
|
,agentName = @agentName
|
|
,superAgent = ISNULL(@superAgent, 0)
|
|
,superAgentName = ISNULL(@superAgentName, 0)
|
|
,au.lastLoginTs
|
|
,fromSendTrnTime = CASE WHEN x.globalOperationTimeEnable = 'Y' AND @settlingAgent <> 1249 THEN operationTimeFrom ELSE au.fromSendTrnTime END
|
|
,toSendTrnTime = CASE WHEN x.globalOperationTimeEnable = 'Y' AND @settlingAgent <> 1249 THEN operationTimeTo ELSE au.toSendTrnTime END
|
|
,fromPayTrnTime = CASE WHEN x.globalOperationTimeEnable = 'Y' AND @settlingAgent <> 1249 THEN operationTimeFrom ELSE au.fromPayTrnTime END
|
|
,toPayTrnTime = CASE WHEN x.globalOperationTimeEnable = 'Y' AND @settlingAgent <> 1249 THEN operationTimeTo ELSE au.toPayTrnTime END
|
|
,au.userType
|
|
,isHeadOffice = @isHeadOffice
|
|
,newBranchId = newBranchId
|
|
,agentLocation = @agentLocation
|
|
,agentGrp = @agentGrp
|
|
,agentEmail = @agentEmail
|
|
,agentPhone = @agentPhone
|
|
,isForcePwdChanged = au.forceChangePwd
|
|
,UserUniqueKey = S.USER_UNIQUE_CODE
|
|
FROM applicationUsers au WITH(NOLOCK)
|
|
LEFT JOIN passwordFormat x WITH(NOLOCK) ON 1 = 1
|
|
LEFT JOIN TBL_USER_2FA_SETUP S(NOLOCK) ON S.[USER_ID] = au.UserID
|
|
WHERE au.userName = @userName
|
|
|
|
RETURN
|
|
END
|
|
|