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); }
$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(); } } }