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.
79 lines
4.5 KiB
79 lines
4.5 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[proc_tranViewAttempt] Script Date: 9/27/2019 1:30:14 PM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
CREATE proc [dbo].[proc_tranViewAttempt]
|
|
@flag VARCHAR(50)
|
|
,@user VARCHAR(30) = NULL
|
|
,@isNewAttempt CHAR(1) = NULL
|
|
,@sortBy VARCHAR(50) = NULL
|
|
,@sortOrder VARCHAR(5) = NULL
|
|
,@pageSize INT = NULL
|
|
,@pageNumber INT = NULL
|
|
AS
|
|
|
|
/*
|
|
@flag,
|
|
i = Insert
|
|
|
|
*/
|
|
DECLARE @sql VARCHAR(MAX), @lockReason VARCHAR(500)
|
|
|
|
IF @flag = 'i'
|
|
BEGIN
|
|
IF NOT EXISTS(SELECT 'X' FROM tranViewAttempt WHERE userName = @user)
|
|
BEGIN
|
|
INSERT INTO tranViewAttempt (
|
|
userName
|
|
,continuosAttempt
|
|
,wholeDayAttempt
|
|
)
|
|
SELECT
|
|
@user
|
|
,1
|
|
,1
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE tranViewAttempt SET
|
|
continuosAttempt = CASE WHEN @isNewAttempt = 'Y' THEN 1 ELSE continuosAttempt + 1 END
|
|
,wholeDayAttempt = CASE WHEN @isNewAttempt = 'Y' THEN ISNULL(wholeDayAttempt, 0) ELSE ISNULL(wholeDayAttempt, 0) + 1 END
|
|
WHERE userName = @user
|
|
END
|
|
DELETE FROM tranViewAttempt WHERE userName IS NULL
|
|
DECLARE
|
|
@continuosAttempt INT
|
|
,@wholeDayAttempt INT
|
|
|
|
SELECT @continuosAttempt = continuosAttempt, @wholeDayAttempt = wholeDayAttempt FROM tranViewAttempt WHERE userName = @user
|
|
IF EXISTS(SELECT 'X' FROM passwordFormat WHERE invControlNoContinous <= @continuosAttempt)
|
|
BEGIN
|
|
UPDATE tranViewAttempt SET
|
|
continuosAttempt = 0
|
|
WHERE userName = @user
|
|
|
|
SET @lockReason = 'Your account has been locked by system due to continuous Invalid Control Number Input Attempt'
|
|
EXEC proc_errorHandler 1, @lockReason, NULL
|
|
EXEC [proc_applicationUsers] @flag = 'loc', @userName = @user, @lockReason = @lockReason
|
|
RETURN
|
|
END
|
|
IF EXISTS(SELECT 'X' FROM passwordFormat WHERE invControlNoForDay <= @wholeDayAttempt)
|
|
BEGIN
|
|
UPDATE tranViewAttempt SET
|
|
wholeDayAttempt = 0
|
|
WHERE userName = @user
|
|
|
|
SET @lockReason = 'Your account has been locked by system. Invalid Control Number Input Attempt has reached its limit.'
|
|
EXEC proc_errorHandler 2, @lockReason, NULL
|
|
EXEC [proc_applicationUsers] @flag = 'loc', @userName = @user, @lockReason = @lockReason
|
|
RETURN
|
|
END
|
|
EXEC proc_errorHandler 0, '', NULL
|
|
END
|
|
|
|
|
|
GO
|