dbo.S_ALL_LOGIN

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

Name Data Type Length Description
@PARAMETER xml -1

SQL Script

SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
create procedure dbo.S_ALL_LOGIN
@PARAMETER xml='' 
---XencX---with encryption
as
set nocount on

declare @XmlSts xml
declare @raw xml
declare @xStsnoheader varchar(2),
  @xStsno varchar(2),
  @xStsdes varchar(2000)
  
set @xStsnoheader='00'
set @xStsno='00';
set @xStsdes='sukses'

 --
 -- SET NOCOUNT ON
 --exec MG_CHECK_CREATE_PERIODE @xStsno output,@xStsdes output;
 --if @xStsno <>'00'
 --begin
 -- set @XmlSts=(select @xStsnoheader + @xStsno as 'no', @xStsdes as 'des' for xml path('sts'))
 -- goto g
 -- end
 --SET NOCOUNT OFF

BEGIN TRY
 BEGIN TRANSACTION;
SET NOCOUNT ON
DECLARE @NOW datetime
set @NOW =GETDATE()
 
 
 declare @Param_usersID varchar(255),
 @Param_usersPass  varchar(255),
 @Param_usersIP  varchar(20) ,
 @Param_From  int

 SELECT
  @Param_usersID=tempTable.item.value('e_id[1]', 'varchar(255)') ,
  @Param_usersPass=tempTable.item.value('e_pass[1]', 'varchar(255)')  
 FROM @PARAMETER.nodes('param/field')  tempTable(item)

 SELECT
  @Param_From=isnull(tempTable.item.value('s_f[1]', 'int'),-1)   , -- 9898 hanya untuk dari setting ccsb
   @Param_usersIP=tempTable.item.value('s_ip[1]', 'varchar(255)')   
 FROM @PARAMETER.nodes('param/session')  tempTable(item)

 
  --1 Desktop NULL
  --2 Web NULL
  --3 IOS NULL
  --4 Android NULL
  --5 Blackberry NULL
   --6 Exim Push NULL


--############## Check users ##############
declare  @_user_id  varchar(100)
  ,@_user_name varchar(100)
  ,@_user_pass  varchar(255)
  ,@_user_readonly int
  ,@_user_banned int
  ,@_user_banned_info varchar(255)
  ,@_id int
  ,@_level_user_id int
  ,@_status_users_name varchar(100)
  ,@_status_info varchar(2000)

  ,@_last_log_desktop varchar(255)
  ,@_last_log_web varchar(255)
  ,@_last_log_IOS varchar(255)
  ,@_last_log_Android varchar(255)
  ,@_last_log_blackberry varchar(255)
  ,@_last_log_Exim_Push varchar(255)
  ,@_last_log_push_multi varchar(255)
  ,@_last_log_ccsb_setting varchar(255)


  ,@_status_users_id int
  ,@_level_user_name varchar(255)
  --1 Desktop NULL
  --2 Web NULL
  --3 IOS NULL
  --4 Android NULL
  --5 Exim Push NULL



   SELECT    top 1     
  @_id =users.id, 
   @_user_readonly= case when users.id=9999 then 0 else ccs_permissions.readonly end, 
  @_user_banned=users.banned, 
  @_user_banned_info=isnull(users.ban_reason,''), 
  @_status_users_id=users.status, 
  @_user_pass=users.password, 
  @_user_id=users.username, 
   @_level_user_name=ccs_roles.name,
  @_user_name=        ccs_user_profile.name
   FROM            ccs_permissions RIGHT OUTER JOIN
                        ccs_branch RIGHT OUTER JOIN
                        ccs_roles RIGHT OUTER JOIN
                        users LEFT OUTER JOIN
                        ccs_user_profile ON users.id = ccs_user_profile.user_id ON ccs_roles.id = users.role_id LEFT OUTER JOIN
                        ccs_division ON ccs_user_profile.divisionID = ccs_division.id_div ON ccs_branch.id_br = ccs_user_profile.branchID ON ccs_permissions.id = users.id
   WHERE        (users.username = @Param_usersID) 

   --- CHECK ADA USER?
  if @_id is null
  begin
   set @xStsno='01';
   set @xStsdes='Invalid User';
   goto f
  end
  
  if not (@Param_usersID='root')
  begin
   IF @_user_id <> @Param_usersID COLLATE SQL_Latin1_General_CP1250_CS_AS
   begin
    set @xStsno='01';
    set @xStsdes='Invalid User';
    goto f
   end   
   end 
 
 
  IF @_user_pass <> @Param_usersPass  COLLATE SQL_Latin1_General_CP1250_CS_AS
  begin
   set @xStsno='01';
   set @xStsdes='Invalid User';
   goto f
  end   

  if @Param_From=9898 and not ((@_id=0) or (@_id=9999))
  begin
   set @xStsno='01';
   set @xStsdes='Hanya User ADMIN yang bisa login';
   goto f
   end 
----- CHECK STATUS USER?
-- if not ( ISNULL(@_status_users_id,-1) =1)
-- begin
-- set @xStsno='02';
-- set @xStsdes='Haii.. "' + @_user_name + '", Maaf anda Sedang Dalam Status "' + @_status_users_name + '" ';
-- goto f
-- end
 
--- CHECK BANNED


  if   ( ISNULL(@_user_banned,1) =1)
  begin
   set @xStsno='03';
   set @xStsdes='Haii.. "' + @_user_name + '", Maaf anda ada dalam daftar banned user ';
   goto f
   end
 
   
    --CHECK IDE
 
  declare @motherboard_id varchar(255)
    declare @XMLValidString varchar(max)

 SELECT     
 TOP (1)
  @XMLValidString=isnull(CONVERT(varchar(MAX),DecryptByPassphrase('Ap4TanyaT4nya MauT4uAj4 4h'    , set_30)),'')   ,
 @motherboard_id=isnull(CONVERT(varchar(MAX),DecryptByPassphrase('Ap4TanyaT4nya MauT4uAj4 4h'    , set_23)),'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX')   
  FROM         dt_app_set
 
 declare @ide_dekstop_sts int,
 @ide_web_sts int,
 @ide_ios_sts int,
 @ide_android_sts int,
 @ide_blackberry_sts int,
 @ide_exim_push_sts int

 if @XMLValidString <>''
 begin
   set @XMLValidString =isnull(substring(@XMLValidString,len(@motherboard_id)+1,LEN(@XMLValidString)-LEN(@motherboard_id)+1) ,'')
  declare  @XMLString xml 
  set @XMLString=@XMLValidString
   SELECT
   @ide_dekstop_sts= isnull(tempTable.item.value('dekstop[1]', 'int'),0),
   @ide_web_sts= isnull(tempTable.item.value('web[1]', 'int'),0),
   @ide_ios_sts= isnull(tempTable.item.value('ios[1]', 'int'),0),
   @ide_android_sts= isnull(tempTable.item.value('android[1]', 'int'),0),
   @ide_blackberry_sts= isnull(tempTable.item.value('blackberry[1]', 'int'),0),
   @ide_exim_push_sts= isnull(tempTable.item.value('exim_push[1]', 'int'),0)
   FROM @XMLString.nodes('module/ide')  tempTable(item);
   end 
 
  
  if @Param_From=1
  begin
  if isnull(@ide_dekstop_sts,0)=0
  begin
   set @xStsno='04';
   set @xStsdes=' Maaf Key IDE untuk DESKTOP APP belum di aktifkan atau status disable ';
   goto f
  end
  end

  if @Param_From=2
  begin
  if isnull(@ide_web_sts,0)=0
  begin
   set @xStsno='05';
   set @xStsdes=' Maaf Key IDE untuk WEB APP belum di aktifkan atau status disable ';
   goto f
  end
  end
  else
  if @Param_From=3
  begin
  if isnull(@ide_ios_sts,0) =0
  begin
   set @xStsno='06';
   set @xStsdes=' Maaf Key IDE untuk IOS APP belum di aktifkan atau status disable ';
   goto f
  end
  end
  else
  if @Param_From=4
  begin
  if isnull(@ide_android_sts,0) =0
  begin
   set @xStsno='07';
   set @xStsdes=' Maaf Key IDE untuk ANDROID APP belum di aktifkan atau status disable ';
   goto f
  end
  end
  else
  if @Param_From=5
  begin
  if isnull(@ide_blackberry_sts,0) =0
  begin
   set @xStsno='08';
   set @xStsdes=' Maaf Key IDE untuk BLACKBERRY APP belum di aktifkan atau status disable ';
   goto f
  end
  end
  else
  if @Param_From=6
  begin
  if isnull(@ide_exim_push_sts,0) =0
  begin
   set @xStsno='09';
   set @xStsdes=' Maaf Key IDE untuk EXIM PUSH DATA APP belum di aktifkan atau status disable ';
   goto f
  end
  end
  else
 if @Param_From=9898
  begin
    set @xStsno='00';
   set @xStsdes='OK';
  end
  else
   begin
  if @Param_From<>0
  begin
   set @xStsno='09';
   set @xStsdes=' Maaf Key IDE untuk EXIM PUSH DATA APP belum di aktifkan atau status disable ';
   goto f
  end
  end



declare @newidlog  varchar(255)
set @newidlog= 
case when @Param_From=1 then 'LD'  --,@_last_log_desktop varchar(255)
  when @Param_From=2 then 'LW' --,@_last_log_web varchar(255)
  when @Param_From=3 then 'LI' --,@_last_log_IOS varchar(255)
  when @Param_From=4 then 'LA' --,@_last_log_Android varchar(255)
  when @Param_From=5 then 'LB' --,@_last_log_blackberry varchar(255)
  when @Param_From=6 then 'LE' --,@_last_log_Exim_Push varchar(255)
  when @Param_From=9898 then 'SB' --,@_last_log_Exim_Push varchar(255)
  when @Param_From=0 then 'MT' --,@_last_log_Exim_Push varchar(255)
  else '' end
   + replace(convert(varchar(255),newid()),'-','') + 'D' + CAST(@Param_From as varchar(255)) 


--- CHECK APAKAH ADA DATA INFO
declare @user_info_id bigint

 

SELECT   top (1) 
 @user_info_id  =   user_info_id
,@_last_log_desktop =last_log_desktop  
,@_last_log_web=last_log_web  
,@_last_log_IOS=last_log_ios  
,@_last_log_Android=last_log_android 
,@_last_log_blackberry=last_log_blackberry  
,@_last_log_Exim_Push=last_log_push_exim
,@_last_log_push_multi=last_log_push_multi
,@_last_log_ccsb_setting=last_log_ccsb_setting
FROM            dt_user_info
WHERE        (id = @_id)


if @user_info_id is null
begin
  INSERT INTO dt_user_info
        (id)
 VALUES        (@_id)
 set @user_info_id= SCOPE_IDENTITY();
end





UPDATE    dt_log
SET              closed = 1
WHERE     (login_from_id = @Param_From) AND (id = @_id)
 
  --,@_last_log_desktop varchar(255)
  --,@_last_log_web varchar(255)
  --,@_last_log_IOS varchar(255)
  --,@_last_log_Android varchar(255)
  --,@_last_log_blackberry varchar(255)
  --,@_last_log_Exim_Push varchar(255)

INSERT INTO dt_log
(log_id, login_from_id, id, start_date, end_date, from_ip, closed)
VALUES     (@newidlog,@Param_From,@_id,@now,@now,@Param_From, 0)
 
 
UPDATE       dt_user_info
SET                
last_log_android = case when @Param_From=1 then @newidlog else last_log_android end, 
last_log_desktop =case when @Param_From=2 then @newidlog else last_log_desktop end, 
last_log_web = case when @Param_From=3 then @newidlog else last_log_web end, 
last_log_ios = case when @Param_From=4 then @newidlog else last_log_ios end, 
last_log_blackberry = case when @Param_From=5 then @newidlog else last_log_blackberry end, 
last_log_push_exim = case when @Param_From=6 then @newidlog else last_log_push_exim end,
last_log_ccsb_setting = case when @Param_From=9898 then @newidlog else last_log_ccsb_setting end,
last_log_push_multi = case when @Param_From=0 then @newidlog else last_log_push_multi end
WHERE        (user_info_id = @user_info_id)

  


declare @last_ip varchar(255)
declare @last_login varchar(255)
set @last_ip=''
set @last_login=''

SELECT    @last_ip= from_ip, @last_login= convert(varchar(255),end_date,103) + ' ' + convert(varchar(255),end_date,108)
FROM         dt_log
WHERE     (log_id = 
case 
 when @Param_From=1 then  @_last_log_desktop
    when @Param_From=2 then  @_last_log_web 
    when @Param_From=3 then  @_last_log_IOS 
    when @Param_From=4 then  @_last_log_Android 
    when @Param_From=5 then  @_last_log_blackberry 
    when @Param_From=6 then  @_last_log_Exim_Push  
    when @Param_From=9898 then  @_last_log_ccsb_setting  
    when @Param_From=0 then  @_last_log_push_multi  
else '' end)


 set @raw=(
   SELECT     @newidlog AS rID, 
   @_user_name as r1,
   @_level_user_name as r2,
   convert(varchar(255),@NOW ,103) + ' ' + convert(varchar(255),@NOW,108) as r3,
   ISNULL(@last_ip,'') as r4,
   ISNULL(@last_login,'') as r5,
   ISNULL(@_level_user_id,-10) as r6
  for xml path('xrow') 
 ) ;

 
 declare @tmpadditional table ( rID int, 
        rname  varchar(255), 
         rval int)
 insert into @tmpadditional 
  SELECT
    isnull(tempTable.item.value('@rID', 'int'),0) ,
   isnull(tempTable.item.value('@rname', 'varchar(255)'),0) ,
   isnull(tempTable.item.value('@rval', 'int'),0) 
 FROM @XMLString.nodes('module/additional/r')  tempTable(item)
declare @adt xml
 set @adt=(
   SELECT     rID , 
   rval as r1 
   from @tmpadditional where rval=1
  for xml path('adt') 
 ) ;

 
f:

 
COMMIT TRANSACTION;
set nocount off

END TRY  
BEGIN CATCH
 IF (@@TRANCOUNT > 0) 
 ROLLBACK TRAN;
 
 set @xStsno='88'
 set @xStsdes= ERROR_MESSAGE() 
END CATCH

g:
set @XmlSts=(select @xStsnoheader + @xStsno as 'no', @xStsdes as 'des' for xml path('sts'))
 select  CAST( (select @XmlSts,isnull(@raw ,''),isnull(@adt ,'')   for xml path ('result')
)  as XML)  as dt


--GO

--exec S_ALL_LOGIN
--'9898dbo.S_ALL_LOGIN.,root$1$rY2.Yu/.$bhSCWCnolI36dq6q5l4Ia/'

 
GO

Used By

No items found