www.eprace.edu.pl » budynek-inteligentny » Zasady i zabezpieczenia systemu » Generowanie możliwości systemu dla zalogowanego użytkownika w oparciu o zmienne sesji

Generowanie możliwości systemu dla zalogowanego użytkownika w oparciu o zmienne sesji

W oparciu o zarejestrowane zmienne sesji generowane jest odpowiednie menu dla użytkownika, które wyświetla lub nie odpowiednie linki, z których użytkownik może skorzystać. Generowane jest także odpowiednie zapytanie, które informuje wyszukiwarkę oraz system, które typy pomieszczeń dany użytkownik może wyświetlać lub przeszukiwać.

Za generowanie menu użytkownika odpowiedzialna jest funkcja klasy HTML – createleftmenu().

<table width="90%" class="tablemenu">

<?php

include_once('objects/html.php');

$html = new html;

$html->createLeftMenu();

?>

</table>

Funkcja createleftmenu() wygląda następująco :

function createLeftMenu(){

Sprawdzamy czy jest zarejestrowana zmienna sesyjna user, jeśli tak to sprawdzamy czy dany użytkownik może wszystko, jeśli tak generowane jest menu administracyjne.

if (isset($_SESSION['user'])){

if($_SESSION['allrights']==1){

$this->adminmenu();

}

W przeciwnym wypadku odczytujemy zdefiniowane dla danego użytkownika prawa i w oparciu o odczytane dane z tabeli rightypes zarejestrowanej w sesji tworzymy odpowiednie linki do stron, do których użytkownik ma prawo dostępu.

else {

for($i=0;$i<ilewtablicy($_SESSION['rightypes']);$i++){

$type=$_SESSION['rightypes'][$i];

switch ($type) {

case 2:

$this

->createlink('czujniki.php',Odczyt_czujniki);

break;

case 3:

$this

->createlink('ustawczuj.php',Ustaw_czujniki);

break;

case 4:

$this

->createlink('dziennik.php',Dziennik_zdarzen);

break;

case 5:

$this->createlink('plany.php',Plany);

break;

}

}

Jako że do pomocy systemu ma dostęp każdy zalogowany użytkownik, link Pomoc generowany jest zawsze.

$this->createlink('help.php',Pomoc);

}

Za generowanie odpowiedniego zapytania w oparciu, o które użytkownik będzie mógł wyszukiwać lub zmieniać wartości w poszczególnych pomieszczeniach służy funkcja generatequery, do której przesyłamy instancje klasy operującej na bazie danych oraz znak lub wyraz wpisany przez użytkownika w wyszukiwarce.

function generatequery($db,$string){

if ($_SESSION['allrooms']==1){

Jeżeli użytkownik może przeszukiwać wszystkie typy pomieszczeń to generowanie jest odpowiednie zapytanie.

$string="SELECT room_name FROM rooms WHERE room_name LIKE '$string%'";

$_SESSION['query']=$string;

}

else {

Jeżeli użytkownik nie może przeszukiwać wszystkich typów pomieszczeń to generowanie jest zapytanie w oparciu o przeszukiwaną tablicową zmienną sesyjną roomtypes.

$string="SELECT room_name FROM rooms WHERE room_name LIKE '$string%' AND ";

$tab=$_SESSION['roomtypes'];

$ile=ilewtablicy($_SESSION['roomtypes']);

$stop=$ile-1;

for ($i=0;$i<ilewtablicy($_SESSION['roomtypes']);$i++){

if ($i==$stop){ $string.="room_type_id=".$_SESSION['roomtypes'][$i]; break;}

$string.="room_type_id=".$_SESSION['roomtypes'][$i]." OR ";

}

$_SESSION['query']=$string;

}

}



komentarze

Copyright © 2008-2010 EPrace oraz autorzy prac.