Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Web Development
  3. Linux, Apache, MySQL, PHP
  4. ROLES ET PRIVILEGES UTILISATEURS D'UN SITE

ROLES ET PRIVILEGES UTILISATEURS D'UN SITE

Scheduled Pinned Locked Moved Linux, Apache, MySQL, PHP
databasephpdata-structuresquestion
1 Posts 1 Posters 3 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    ameb2908
    wrote on last edited by
    #1

    Bonjour, j'ai un soucis avec les privilèges utilisateurs (AUCUN, EDITEUR, ADMINISTRATEUR). C'est à dire, en fonction des identifiants rentrés, on a accès à certaines liens du menu. et malheureusement chez moi le menu ne s'affiche pas. Besoin d'aide, merci d'avance. voici mon code : class/Usermanager.php

    class Usermanager {

    private $db;
    
    public function \_\_construct($db) {
    
        $this->setDb($db);
    }
    
    public function setDb(PDO $dbh) {
    
        return $this->db = $dbh;
    }
    
    public function displayMenu($user\_role\_id) {
    
         try {
    
            $sql = 'SELECT A.name, A.slug
                    FROM user\_action AS A
                    INNER JOIN user\_permission AS P
                    ON A.actionID = P.action\_id
                    AND P.min\_role\_id < :user\_role\_id';
    
            $stmnt = $this->db->prepare($sql);
            $stmnt->execute(array(
    
                ':user\_role\_id' => $user\_role\_id
            ));
    
            while($row = $stmnt->fetch(PDO::FETCH\_ASSOC)) {
    
                $menu\_data\[\] = $row;
            }
    
            if(isset($menu\_data)) {
    
                return $menu\_data;
            }
            else {
    
                return false;
            }
        }
        catch(PDOException $e) {
    
            echo MSG\_ERROR . $e->getMessage();
        }
    }
    
    public function checkUserPermission($action\_slug, $user\_role\_id) {
    
        try {
        
            $sql = 'SELECT P.action\_id, P.min\_role\_id
                    FROM user\_permission AS P
                    INNER JOIN user\_action AS A
                    ON A.slug = :action\_slug
                    AND P.action\_id = A.actionID';
                    
    
            $stmnt = $this->db->prepare($sql);
            $stmnt->execute(array(
    
                ':action\_slug' => $action\_slug
            ));
    
            while($row = $stmnt->fetch(PDO::FETCH\_ASSOC)) {
    
                $min\_role\_id = $row\['P.min\_role\_id'\];
    
                if($min\_role\_id > $user\_role\_id) {
    
                    return $min\_role\_id;
                }
            }
        }
        catch(PDOException $e) {
    
            echo MSG\_ERROR . $e->getMessage();
        }
    }
    

    }

    process/process-display-menu.php

    $username_form = isset($_SESSION['username_form']) ? $_SESSION['username_form'] : NULL;

    $manager = new Usermanager($db);
    $menu_items = $manager->displayMenu($username_form);

    $menu_html = '

    1 Reply Last reply
    0
    Reply
    • Reply as topic
    Log in to reply
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes


    • Login

    • Don't have an account? Register

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • World
    • Users
    • Groups