-- ----------------------------
-- Procedure structure for [WZ_ACCOUNT_LOGIN]
-- ----------------------------
ALTER PROCEDURE [dbo].[WZ_ACCOUNT_LOGIN]
@in_IP varchar(100),
@in_EMail varchar(100),
@in_HardwareID varchar(50),
@in_Password varchar(100)
AS
BEGIN
SET NOCOUNT ON;
declare @CustomerID int
declare @MD5Password varchar(100)
declare @AccountStatus int = 0 -- this is Accounts.AccountStatus
-- this call is always valid
select 0 as ResultCode
-- search for record with username
SELECT
@CustomerID=CustomerID,
@MD5Password=MD5Password,
@AccountStatus=AccountStatus
FROM Accounts
WHERE email=@in_Email
if (@@RowCount = 0) begin
select
1 as LoginResult,
0 as CustomerID,
0 as AccountStatus
return
end
-- check MD5 password
declare @MD5FromPwd varchar(100)
exec FN_CreateMD5Password @in_Password, @MD5FromPwd OUTPUT
if(@MD5Password <> @MD5FromPwd) begin
select
2 as LoginResult,
0 as CustomerID,
0 as AccountStatus
return
end
-- check if deleted account because of refund
if(@AccountStatus = 999) begin
select
3 as LoginResult,
0 as CustomerID,
999 as AccountStatus
return
end
-- perform actual login
exec WZ_ACCOUNT_LOGIN_EXEC @in_IP,@in_HardwareID,@CustomerID
END