public function changePermissions($profil, $generalPermissions, $pluginsPermissions)
 {
     $this->verifyLoaded();
     if ($generalPermissions === null) {
         $generalPermissions = array();
     }
     if ($pluginsPermissions === null) {
         $pluginsPermissions = array();
     }
     $testProfil = new Profil();
     if (!$testProfil->charger_id($profil) && $profil != 0) {
         throw new TheliaAdminException('Incorrect parameter $profil : could not load Profil.', TheliaAdminException::PROFIL_NOT_FOUND);
     }
     if ($profil != 0) {
         $this->profil = $profil;
         $this->maj();
     }
     if ($this->profil != ProfilAdmin::ID_PROFIL_SUPERADMINISTRATEUR) {
         foreach ($this->query_liste("SELECT * FROM " . Autorisation::TABLE) as $row) {
             $autorisation_administrateur = new Autorisation_administrateur();
             $autorisation_administrateur->charger($row->id, $this->id);
             if (array_key_exists($row->id, $generalPermissions) && $generalPermissions[$row->id] == 'on') {
                 if (!$autorisation_administrateur->id) {
                     $autorisation_administrateur->administrateur = $this->id;
                     $autorisation_administrateur->autorisation = $row->id;
                     $autorisation_administrateur->lecture = 0;
                     $autorisation_administrateur->ecriture = 0;
                     $autorisation_administrateur->id = $autorisation_administrateur->add();
                 }
                 $autorisation_administrateur->lecture = 1;
                 $autorisation_administrateur->ecriture = 1;
                 $autorisation_administrateur->maj();
             } else {
                 if ($autorisation_administrateur->id) {
                     $autorisation_administrateur->lecture = 0;
                     $autorisation_administrateur->ecriture = 0;
                     $autorisation_administrateur->maj();
                 }
             }
         }
         foreach (ActionsAdminModules::instance()->lister(false, true) as $module) {
             if (ActionsAdminModules::instance()->est_administrable($module->nom)) {
                 $autorisation_modules = new Autorisation_modules();
                 $autorisation_modules->charger($module->id, $this->id);
                 if (array_key_exists($module->id, $pluginsPermissions) && $pluginsPermissions[$module->id] == 'on') {
                     if (!$autorisation_modules->id) {
                         $autorisation_modules->administrateur = $this->id;
                         $autorisation_modules->module = $module->id;
                         $autorisation_modules->id = $autorisation_modules->add();
                     }
                     $autorisation_modules->autorise = 1;
                     $autorisation_modules->maj();
                 } else {
                     if ($autorisation_modules->id) {
                         $autorisation_modules->autorise = 0;
                         $autorisation_modules->maj();
                     }
                 }
             }
         }
     }
     ActionsModules::instance()->appel_module("changePermissionsAdmin", new Administrateur($this->id));
     redirige('gestadm_droits.php?administrateur=' . $this->id);
 }
示例#2
0
            $autorisation_administrateur->ecriture = 0;
        }
    } else {
        if ($autorisation->type == "2") {
        }
    }
    if ($autorisation_administrateur->id) {
        $autorisation_administrateur->maj();
    } else {
        $autorisation_administrateur->autorisation = $autorisation->id;
        $autorisation_administrateur->administrateur = $_GET['administrateur'];
        $autorisation_administrateur->add();
    }
} else {
    if ($_GET['type_droit'] == "2") {
        $autorisation_modules = new Autorisation_modules();
        $autorisation_modules->charger($_GET['module'], $_GET['administrateur']);
        if ($_GET['valeur'] == 1) {
            $autorisation_modules->autorise = 1;
        } else {
            $autorisation_modules->autorise = 0;
        }
        if ($autorisation_modules->id) {
            $autorisation_modules->maj();
        } else {
            $autorisation_modules->module = $_GET['module'];
            $autorisation_modules->administrateur = $_GET['administrateur'];
            $autorisation_modules->add();
        }
    }
}