Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2011
489
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 1.52 KB | None | 0 0
  1. DROP FUNCTION IF EXISTS CheckUsernameMac;
  2. DELIMITER //
  3.  
  4. CREATE FUNCTION CheckUsernameMac(pUsername VARCHAR(20), pMac VARCHAR(20))
  5.     RETURNS INT
  6. BEGIN
  7.     DECLARE vResult         INT DEFAULT 1;
  8. p:BEGIN
  9.     /** -1 = Deny access    *
  10.      *   0 = Allow access   *
  11.      *   1 = Bann user     **/
  12.      DECLARE vUserHasMacs BIT;
  13.      DECLARE vMacAllowed BIT;
  14.      DECLARE vUsersMac BIT;
  15.      DECLARE vBlacklisted BIT;
  16.      DECLARE vWhitelisted BIT;
  17.      
  18.      SELECT
  19.         UserHasMacs(pUsername) INTO vUserHasMacs;
  20.      SELECT
  21.         MacAllowed(pMac) INTO vMacAllowed;
  22.      SELECT
  23.         MacRegisteredForUser(pUsername, pMac)
  24.             INTO vUsersMac;
  25.      SELECT
  26.         UserBlacklisted(pUsername) INTO vBlacklisted;
  27.      SELECT
  28.         UserWhitelisted(pUsername) INTO vWhitelisted;
  29.        
  30.     IF(vWhitelisted)
  31.     THEN
  32.         SET vResult = 0;
  33.         LEAVE p;
  34.     END IF;
  35.     IF(vBlacklisted)
  36.     THEN
  37.         SET vResult = -1;
  38.         LEAVE p;
  39.     END IF;
  40.    
  41.     IF
  42.     NOT vMacAllowed
  43.     THEN
  44.         SET vResult = 1;
  45.         LEAVE p;
  46.     END IF;
  47.     IF
  48.     NOT vUsersMac
  49.     AND vUserHasMacs
  50.     THEN
  51.         CALL BannMac(pMac);
  52.         SET vResult = 1;
  53.         LEAVE p;
  54.     END IF;
  55.     IF
  56.             vMacAllowed
  57.     AND NOT vUserHasMacs
  58.     THEN
  59.         CALL RegisterMac(pUsername, pMac);
  60.         SET vResult = 0;
  61.         LEAVE p;
  62.     END IF;
  63.     IF
  64.     NOT vMacAllowed
  65.     THEN
  66.         SET vResult = 1;
  67.         LEAVE p;
  68.     END IF;
  69. END; # p:END
  70.     RETURN vResult;
  71. END //
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement