Accueil > Forum > > > > menu php avec sécurité et gestion de doirts
menu php avec sécurité et gestion de doirts
vendredi 16 avril 2010 à 18:40:33 |
menu php avec sécurité et gestion de doirts

patric1014
|
bonjour, SVP j'ai besoin d'aide d'urgence je suis débutant en php POO et je travail sur une application et je devais faire un systeme t'authentification j'ai trouvé un générateur de code php du quel j'ai pu avoir un gestionnaire d'utilisateur tres bien fais avec gestion de droits d'utilisateur mais malheureusement je suis incapable de l'adapté ds mon application es que qlq'a peu m'aidé a comprendre ce script j'en serai tres reconnaissant et merci d'avance. voila mon code:
Code PHP : <?php
// Menu
define("EW_MENUBAR_VERTICAL_CLASSNAME", "ewMenuBarVertical", TRUE);
define("EW_MENUBAR_SUBMENU_CLASSNAME", "", TRUE);
define("EW_MENUBAR_RIGHTHOVER_IMAGE", "", TRUE);
?>
<?php
define("EW_SESSION_MENU_AR_USER_LEVEL_PRIV", "project1_arUserLevelPriv", TRUE); // User Level Privilege Array
define("EW_SESSION_MENU_USER_LEVEL", "project1_status_UserLevelValue", TRUE); // User level value
define("EW_MENU_ALLOW_ADMIN", 16, TRUE);
// Restore user level privilege
if (is_array(@$_SESSION[EW_SESSION_MENU_AR_USER_LEVEL_PRIV]))
$arMenuUserLevelPriv = $_SESSION[EW_SESSION_MENU_AR_USER_LEVEL_PRIV];
// Check if menu item is allowed for current user level
function AllowListMenu($TableName) {
global $arMenuUserLevelPriv;
$userlevellist = "";
if (function_exists("CurrentUserLevelList"))
$userlevellist = CurrentUserLevelList(); // Get user level id list
if (strval($userlevellist) == "") // Not defined, just get user level
$userlevellist = CurrentUserLevel();
if (IsLoggedIn()) {
if (IsListItem($userlevellist, "-1")) {
return TRUE;
} else {
$priv = 0;
if (is_array($arMenuUserLevelPriv)) {
foreach ($arMenuUserLevelPriv as $row) {
if (strval($row[0]) == strval($TableName) &&
IsListItem($userlevellist, $row[1])) {
$thispriv = $row[2];
if (is_null($thispriv)) $thispriv = 0;
$thispriv = intval($thispriv);
$priv = $priv | $thispriv;
}
}
}
return ($priv & 8);
}
} else {
return FALSE;
}
}
// Is list item
function IsListItem($list, $item) {
if ($list == "") {
return FALSE;
} else {
$ar = explode(",", $list);
foreach ($ar as $level) {
if (trim(strval($item)) == trim(strval($level)))
return TRUE;
}
return FALSE;
}
}
/**
* Menu class
*/
class cMenu {
var $Id;
var $IsRoot = FALSE;
var $NoItem = NULL;
var $ItemData = array();
function cMenu($id) {
$this->Id = $id;
}
// Add a menu item
function AddMenuItem($id, $url, $parentid, $src, $allowed = TRUE) {
$item = new cMenuItem($id, $url, $parentid, $src, $allowed);
if (!MenuItem_Adding($item)) return;
if ($item->ParentId < 0) {
$this->AddItem($item);
} else {
if ($oParentMenu =& $this->FindItem($item->ParentId))
$oParentMenu->AddItem($item);
}
}
// Add item to internal array
function AddItem($item) {
$this->ItemData[] = $item;
}
// Find item
function &FindItem($id) {
$cnt = count($this->ItemData);
for ($i = 0; $i < $cnt; $i++) {
$item =& $this->ItemData[$i];
if ($item->Id == $id) {
return $item;
} elseif (!is_null($item->SubMenu)) {
if ($subitem =& $item->SubMenu->FindItem($id))
return $subitem;
}
}
return $this->NoItem;
}
// Check if a menu item should be shown
function RenderItem($item) {
if (!is_null($item->SubMenu)) {
foreach ($item->SubMenu->ItemData as $subitem) {
if ($item->SubMenu->RenderItem($subitem))
return TRUE;
}
}
return ($item->Allowed && $item->Url <> "");
}
// Check if this menu should be rendered
function RenderMenu() {
foreach ($this->ItemData as $item) {
if ($this->RenderItem($item))
return TRUE;
}
return FALSE;
}
// Render the menu
function Render() {
if (!$this->RenderMenu())
return;
echo "<ul";
if ($this->Id <> "") {
if (is_numeric($this->Id)) {
echo " id=\"menu_" . $this->Id . "\"";
} else {
echo " id=\"" . $this->Id . "\"";
}
}
if ($this->IsRoot)
echo " class=\"" . EW_MENUBAR_VERTICAL_CLASSNAME . "\"";
echo ">\n";
foreach ($this->ItemData as $item) {
if ($this->RenderItem($item)) {
echo "<li><a";
if (!is_null($item->SubMenu) && $item->SubMenu->RenderMenu())
echo " class=\"" . EW_MENUBAR_SUBMENU_CLASSNAME . "\"";
if ($item->Url <> "")
echo " href=\"" . htmlspecialchars(strval($item->Url)) . "\"";
if (!is_null($item->SubMenu))
$item->SubMenu->Render();
echo "</li>\n";
}
}
echo "</ul>\n";
}
}
// Menu item class
class cMenuItem {
var $Id;
var $Url;
var $ParentId;
var $SubMenu = NULL; // Data type = cMenu
var $Source;
var $Allowed = TRUE;
function cMenuItem($id, $url, $parentid, $src, $allowed) {
$this->Id = $id;
$this->Url = $url;
$this->ParentId = $parentid;
$this->Source = $src;
$this->Allowed = $allowed;
}
function AddItem($item) { // Add submenu item
if (is_null($this->SubMenu))
$this->SubMenu = new cMenu($this->Id);
$this->SubMenu->AddItem($item);
}
}
// MenuItem Adding event
function MenuItem_Adding(&$Item) {
//var_dump($Item);
// Return FALSE if menu item not allowed
return TRUE;
}
?>
<!-- Begin Main Menu -->
<div class="phpmaker">
<?php
// Generate all menu items
$RootMenu = new cMenu("RootMenu");
$RootMenu->IsRoot = TRUE;?>
<link rel='stylesheet' type='text/css' href='style.css'>
<script type="text/javascript" src="style/sdmenu.js"></script>
<script type="text/javascript">
// <![CDATA[
var myMenu;
window.onload = function() {
myMenu = new SDMenu("my_menu");
myMenu.init();
};
// ]]>
</script>
<div style="float: left" id="my_menu" class="sdmenu">
<div>
<span>Bien</span>
<a target="content" href="<?php $RootMenu->AddMenuItem(1, "add_bien1.php", -1, "", AllowListMenu('agence'));?>"> ajouter un bien</a>
<a target="content" href="<?php $RootMenu->AddMenuItem(2, "bienlist.php?cmd=resetall", -1, "", AllowListMenu('bien'));?>"> Bien </a>
<a target="content" href="<?php $RootMenu->AddMenuItem(3, "categorieplist.php", -1, "", AllowListMenu('categoriep'));?>"> Categoriep </a>
<a target="content" href="<?php $RootMenu->AddMenuItem(4, "civilitelist.php", -1, "", AllowListMenu('civilite'));?> "> Civilite</a>
<a target="content" href="<?php $RootMenu->AddMenuItem(5, "clientlist.php?cmd=resetall", -1, "", AllowListMenu('client'));?>">Client </a>
<a target="content" href="<?php $RootMenu->AddMenuItem(6, "localisationlist.php?cmd=resetall", -1, "", AllowListMenu('localisation'));?>"> Localisation</a>
<a target="content" href="<?php $RootMenu->AddMenuItem(7, "naturebienlist.php", -1, "", AllowListMenu('naturebien'));?>">Naturebien </a>
<a target="content" href="<?php $RootMenu->AddMenuItem(8, "originelist.php", -1, "", AllowListMenu('origine'));?>">Origine </a>
<a target="content" href="<?php $RootMenu->AddMenuItem(9, "payslist.php", -1, "", AllowListMenu('pays'));?>"> Pays</a>
<a target="content" href="<?php $RootMenu->AddMenuItem(10, "personnelist.php?cmd=resetall", -1, "", AllowListMenu('personne'));?>">Personne </a>
<a target="content" href="<?php $RootMenu->AddMenuItem(11, "photolist.php?cmd=resetall", -1, "", AllowListMenu('photo'));?>"> Photo</a>
<a target="content" href="<?php $RootMenu->AddMenuItem(12, "publist.php?cmd=resetall", -1, "", AllowListMenu('pub'));?>">Pub </a>
<a target="content" href="<?php $RootMenu->AddMenuItem(13, "quatierlist.php", -1, "", AllowListMenu('quatier'));?>">Quatier </a>
<a target="content" href="<?php $RootMenu->AddMenuItem(14, "typebienlist.php", -1, "", AllowListMenu('typebien'));?>">Typebien </a>
<a target="content" href="<?php $RootMenu->AddMenuItem(15, "userlist.php?cmd=resetall", -1, "", AllowListMenu('user'));?>">User </a>
<a target="content" href=" <?php $RootMenu->AddMenuItem(16, "userlevelpermissionslist.php?cmd=resetall", -1, "", (@$_SESSION[EW_SESSION_MENU_USER_LEVEL] & EW_MENU_ALLOW_ADMIN) == EW_MENU_ALLOW_ADMIN);?>">Userlevelpermissions</a>
<a target="content" href="<?php $RootMenu->AddMenuItem(17, "userlevelslist.php", -1, "", (@$_SESSION[EW_SESSION_MENU_USER_LEVEL] & EW_MENU_ALLOW_ADMIN) == EW_MENU_ALLOW_ADMIN); ?>"> Userlevels</a>
<a target="content" href="<?php $RootMenu->AddMenuItem(0xFFFFFFFF, "logout.php", -1, "", IsLoggedIn());?>">Déconnexion </a>
<a target="content" href="<?php $RootMenu->AddMenuItem(0xFFFFFFFF, "login.php", -1, "", !IsLoggedIn() && substr(@$_SERVER["URL"], -1 * strlen("login.php")) <> "login.php");?>">Connnexion</a>
<?php $RootMenu->Render(); ?>
</div>
</div>
Normalement il affiche le menu a partir de la base de donnée donc il affiche les nom des table moi je veux mettre des nom propre a moi et des liens de page que j'ai cree moi mm et je sais pa comment le faire j'espere que qlq aie une idée comment faire. merci.
|
|
Cette discussion est classée dans : php, item, id, addmenuitem, if
Répondre à ce message
Sujets en rapport avec ce message
Problème avec un "if" [ par taxitat ]
Bonjour à tous,J'espère avoir posté dans la bonne section (si non, dsl, les modos)Sur mon site, j'ai une page index.php où à l'intérieur je fais un in
un code PHP pour Consulter la liste des Emails [ par saif1982 ]
J'ai créé un code PHP pour Consulter la liste des Emails C
PHP : une requete de selection(besoin d'aide) [ par info3licen ]
Bonjour tout le monde;j'ai fait un formulaire et je travaille avec php le formulaire c'est pour un enseignant il fait entrer son matricule et son suje
utilisation de session pour la gestion des acces à une application [ par cyrilherve ]
je travail sur une application ou j'ai prevu une page de connexion ou l'on s'identifie avec un indifiant et un mot de passe; ensuite en fonction de so
ordre des fichiers "image" dans une galerie en php [ par philclimb ]
Bonjour à tous, J'ai fais un script php pour faire une galerie photo assez simple.Tout fonctionne bien sauf que les fichiers sont affichés dans le
$_GET [ par errahmouninawal ]
Salut tout le monde ;Vraiment je sais pas pourquoi ça marche pas !!!!!!Voila mon code: page1.php
qui peut corriger mon code php [ par hwm86 ]
Posté le 31/03/2009 à 16:46 <a href="http://www.vulgarisation-
Problème de boucle [ par jonas03 ]
Bonjour à tous,Mon problème est le suivant : j'ai une requête qui permet de rechercher une personne si elle a un papier , et dans ma liste déroulante
problème incompréhensible... [ par keithsize ]
bonjour,alors voila sur une page php j'ai un script qui génére un fichier avec un ID://La fonction génère un id aléatoirefunction ID() { srand(time
Passer de javascript à php [ par heepsound ]
Bonjour, j'utilise actuellement un script pour réglementer l'accès à certaines pages. Il fonctionne bien mais les codes d'accès sont visibles avec la
Livres en rapport
|
Derniers Blogs
ROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGEROSLYN FLUENT APIS: ROSLYNHELPER NUGET PACKAGE par Matthieu MEZIL
Si vous utilisez Roslyn et que vous vous voulez vous simplifier le code du code rewriter, je vous conseille d'installer mon NuGet package RoslynHelper ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|