Guest User

Untitled

a guest
Jul 24th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.40 KB | None | 0 0
  1. drop procedure if exists get_user_credentials;
  2.  
  3. delimiter #
  4.  
  5. create procedure get_user_credentials
  6. (
  7. in p_username varbinary(32),
  8. in p_password varchar(32),
  9. in p_session_id char(32),
  10. in p_user_ip varchar(16)
  11. )
  12.  
  13. proc_main:begin
  14.  
  15. declare p_user_id int unsigned default null;
  16. declare p_status_id tinyint default -1;
  17. declare p_today datetime default now();
  18. declare p_reason varchar(255) default null;
  19. declare p_ban_id int default null;
  20.  
  21. -- ban checks
  22.  
  23. select u.user_id, u.status_id into p_user_id, p_status_id
  24. from users u where u.username = p_username and u.password = p_password and u.user_id > 1;
  25.  
  26. select ban_id, reason into p_ban_id, p_reason
  27. from IP_ban where ip_num = inet_aton(p_user_ip) and p_today >= created_date and p_today <= expiry_date;
  28.  
  29. if p_ban_id is not null then
  30.  
  31. -- banned user login attempt
  32.  
  33. call insert_user_log(5, p_user_id, p_session_id, p_user_ip);
  34.  
  35. select 0 as user_id, 1 as err_id, p_reason as msg;
  36.  
  37. leave proc_main;
  38.  
  39. end if;
  40.  
  41. select ban_id, reason into p_ban_id, p_reason
  42. from username_ban where username = p_username and p_today >= created_date and p_today <= expiry_date;
  43.  
  44. if p_ban_id is not null then
  45.  
  46. -- banned user login attempt
  47.  
  48. call insert_user_log(5, p_user_id, p_session_id, p_user_ip);
  49.  
  50. select 0 as user_id, 1 as err_id, p_reason as msg;
  51.  
  52. leave proc_main;
  53.  
  54. end if;
  55.  
  56. if p_user_id is null then
  57.  
  58. -- invalid user login
  59.  
  60. call insert_user_log(3, p_user_id, p_session_id, p_user_ip);
  61.  
  62. select 0 as user_id, e.* from error_msg e where e.err_id = 102;
  63.  
  64. leave proc_main;
  65.  
  66. end if;
  67.  
  68. if p_status_id <= 0 then
  69.  
  70. -- suspended, banned etc
  71.  
  72. call insert_user_log(4, p_user_id, p_session_id, p_user_ip);
  73.  
  74. call insert_user_ip(p_user_id, p_session_id, p_user_ip);
  75.  
  76. select 0 as user_id, s.msg from user_status s where s.status_id = p_status_id;
  77.  
  78. leave proc_main;
  79.  
  80. end if;
  81.  
  82. -- valid user let 'em in
  83.  
  84. update users u set u.last_login_date = now() where u.user_id = p_user_id;
  85.  
  86. call insert_user_log(1, p_user_id, p_session_id, p_user_ip);
  87.  
  88. call insert_user_ip(p_user_id, p_session_id, p_user_ip);
  89.  
  90. select
  91. u.user_id,u.username,u.role_id,u.role_name,u.status_id,
  92. u.status_name,u.theme_id,u.theme_name,game_id,
  93. u.last_login_date_fmt, warn_count
  94. from
  95. users_view u where u.user_id = p_user_id;
  96.  
  97.  
  98. end proc_main #
  99.  
  100. delimiter ;
Add Comment
Please, Sign In to add comment