Advertisement
rainbowdash28

Untitled

Jun 8th, 2012
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.62 KB | None | 0 0
  1. <?php
  2. /* first of all erstmal ein Kommentar-Block:
  3.  
  4. Wir haben eine Datenbank mit der Tabelle "flags" darinnen sind alle rechte die es so gibt beinhaltet, oder du erstellst dir einfach ein array ist mir Schnuppe dann bist du aber selber für die Umschreibung verantwortlich:
  5.  
  6. Die Tabelle `flags` hat also einige Spalten:
  7. `flag` text NOT NULL
  8. `flag_name` varchar(160) NULL
  9. `name` varchar(320) NULL
  10.  
  11. Wir tragen einige werte ein:
  12. INSERT INTO `flags`(`flag`,`flag_name`,`name`) VALUES
  13.     ('1','news_write','News: Verfassen'),
  14.     ('2','news_edit','News: Bearbeiten'),
  15.     ('4','news_delete','News: Löschen'),
  16.     ('8','news_comment_write','News-Kommentar: Schreiben');
  17.  
  18. Also haben wir schon paar Flags mit flag.
  19.  
  20. Sop nun zur Abfragung!*/
  21.  
  22. $global_count = mysql_fetch_array(db_query('SELECT COUNT(`flag`) FROM `flags`'));
  23.  
  24. $global_res_needed = db_query('SELECT * FROM `flags`');
  25. while($global_row_needed = mysql_fetch_array($global_res_needed)) $global_needed[$global_row_needed['flag_name']] = $global_row_needed;
  26.  
  27. function get_right($required) {
  28.     $rechte = array();
  29.     global $global_count;
  30.     global $global_needed;
  31.     #$rights hat als Wert die Rechte des Users z.b. wenn er Kommentare & News schreiben darf hat er 9!
  32.     #$rights = 9;
  33.     $rights = $_SESSION['userdata']['rights'];
  34.    
  35.     for($i = $global_count[0]; $i >= 0; $i--) {
  36.         $wert = pow(2, $i);
  37.       if($rights >= $wert) {
  38.         $rechte[] = $wert;
  39.         $rights -= $wert;
  40.     }
  41.     }
  42.   if(in_array($global_needed[$required]['flag'], $rechte)) {
  43.     return true;
  44.   } else {
  45.     return false;
  46.   }
  47. }
  48.  
  49. // Sollte all das nicht funktionieren kann ich auch nicht helfen, sry hab einfach keine zeit!
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement