Advertisement
Guest User

Untitled

a guest
May 27th, 2016
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.01 KB | None | 0 0
  1. bif_set_user_id (caddr_t * qst, caddr_t * err_ret, state_slot_t ** args)
  2. {
  3.   query_instance_t *qi = (query_instance_t *) QST_INSTANCE (qst);
  4.   client_connection_t * cli = qi->qi_client;
  5.   caddr_t uname = bif_string_arg (qst, args, 0, "__set_user_id");
  6.   long mode = BOX_ELEMENTS (args) > 1 ? (long) bif_long_arg (qst, args, 1, "__set_user_id") : 1;
  7.   caddr_t pass = BOX_ELEMENTS (args) > 2 ? bif_string_arg (qst, args, 2, "__set_user_id") : NULL;
  8.   user_t * user = sec_name_to_user (uname);
  9.  
  10.   if (!user /*|| !user->usr_is_sql*/ || user->usr_is_role)
  11.     sqlr_new_error ("22023", "HT042", "Not valid user id \"%s\"", uname);
  12.  
  13.   if (pass && (0 != strcmp (pass, user->usr_pass) || user->usr_disabled))
  14.     sqlr_new_error ("22023", "HT042", "Invalid credentials for user id \"%s\"", uname);
  15.  
  16.   if (!pass)
  17.     sec_check_dba ((query_instance_t *) qst, "__set_user_id");
  18.  
  19.   set_user_id (cli, uname, NULL);
  20.   qi->qi_pop_user = mode;
  21.   qi->qi_u_id = user->usr_id;
  22.   qi->qi_g_id = user->usr_g_id;
  23.  
  24.   return (box_num (0));
  25. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement