Passed
Push — master ( 5e39e5...d58d86 )
by Anthony
03:52
created

DroitAcces::getLogged()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 3
rs 10
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
	namespace core\admin\droitsacces;
3
4
	use core\App;
5
6
	class DroitAcces {
7
8
		//pour la table identite
9
		protected $id_identite;
10
		private $super_admin;
11
12
		//pour la table liste_droit_acces
13
		protected $id_liste_droit_acces;
14
15
		//pour des droits pour la gestion des contenus
16
		private $modif_seo;
17
		private $modif_contenu;
18
		private $modif_navigation;
19
		private $supprimer_page;
20
21
22
		//-------------------------- CONSTRUCTEUR ----------------------------------------------------------------------------//
23
		public function __construct() {
24
			$dbc = \core\App::getDb();
25
26
			$this->id_identite = $_SESSION["idlogin".CLEF_SITE];
27
28
			//on test voir si super admin
29
			$query = $dbc->select("super_admin")->select("liste_droit")->from("identite")->where("ID_identite", "=", $this->id_identite)->get();
30
31
			if ((is_array($query)) && (count($query) > 0)) {
32
				foreach ($query as $obj) {
33
					$this->super_admin = $obj->super_admin;
34
					$this->id_liste_droit_acces = $obj->liste_droit;
35
				}
36
				App::setValues(["super_admin" => $this->super_admin]);
37
			}
38
		}
39
		//-------------------------- FIN CONSTRUCTEUR ----------------------------------------------------------------------------//
40
    
41
    
42
    
43
		//-------------------------- GETTER ----------------------------------------------------------------------------//
44
		public function getSuperAdmin() {
45
			return $this->super_admin;
46
		}
47
		public function getIdListeDroitAcces() {
48
			return $this->id_liste_droit_acces;
49
		}
50
		public function getModifSeo() {
51
			return $this->modif_seo;
52
		}
53
		public function getModifContenu() {
54
			return $this->modif_contenu;
55
		}
56
		public function getModifNavigation() {
57
			return $this->modif_navigation;
58
		}
59
		public function getSupprimerPage() {
60
			return $this->supprimer_page;
61
		}
62
63
		/**
64
		 * @return array
65
		 */
66
		private function getListeDroitAcces() {
67
			$dbc = App::getDb();
68
69
			$liste_droit_acces = [];
70
71
			$query = $dbc->select()->from("droit_acces")
72
				->from("liste_droit_acces")
73
				->from("liaison_liste_droit")
74
				->where("liste_droit_acces.ID_liste_droit_acces", "=", $this->id_liste_droit_acces, "AND")
75
				->where("droit_acces.ID_droit_acces", "=", "liaison_liste_droit.ID_droit_acces", "AND", true)
76
				->where("liste_droit_acces.ID_liste_droit_acces", "=", "liaison_liste_droit.ID_liste_droit_acces", "", true)
77
				->get();
78
79
			if ((is_array($query)) && (count($query) > 0)) {
80
				foreach ($query as $obj) $liste_droit_acces[] = $obj->droit_acces;
81
			}
82
			
83
			App::setValues(["droit_acces_user" => $liste_droit_acces]);
84
			return $liste_droit_acces;
85
		}
86
87
		/**
88
		 * @param $id_page
89
		 */
90
		public function getListeDroitModificationContenu($id_page) {
91
			$dbc = App::getDb();
92
93
			//on check si il a le droit de modifier ou supprimer cette page
94
			$query = $dbc->select()->from("droit_acces_page")
95
				->from("liste_droit_acces")
96
				->where("droit_acces_page.ID_page", "=", $id_page, "AND")
97
				->where("liste_droit_acces.ID_liste_droit_acces", "=", $this->id_liste_droit_acces, "AND")
98
				->where("droit_acces_page.ID_liste_droit_acces", "=", "liste_droit_acces.ID_liste_droit_acces", "", true)
99
				->get();
100
101
			//si on a un resultat
102
			if ((is_array($query)) && (count($query) > 0)) {
103
				foreach ($query as $obj) {
104
					$this->modif_seo = $obj->seo;
105
					$this->modif_contenu = $obj->contenu;
106
					$this->modif_navigation = $obj->navigation;
107
					$this->supprimer_page = $obj->supprimer;
108
				}
109
				
110
				App::setValues(["droit_acces_page" => [
111
					"seo" => $this->modif_seo,
112
					"contenu" => $this->modif_contenu,
113
					"navigation" => $this->modif_navigation,
114
					"supprimer" => $this->supprimer_page
115
				]]);
116
			}
117
		}
118
119
		/**
120
		 * fonction qui permet de gérer les droits d'accès sur les contenus :
121
		 * - creer une page
122
		 * - modifier du contenu (SEO, navigation, contenu)
123
		 * - supprimer une page
124
		 * si on est super admin on passe outre tous les tests
125
		 * @param $droit
126
		 * @param $id_page
127
		 * @return bool|null
128
		 */
129
		public function getDroitAccesContenu($droit, $id_page) {
130
			$liste_droit_acces = $this->getListeDroitAcces();
131
132
			$this->getListeDroitModificationContenu($id_page);
133
134
			$array_modif = [$this->modif_seo, $this->modif_contenu, $this->modif_navigation];
135
136
			//si les trois sont différent de 0 on renvoit true soinon false
137
			if (($this->super_admin == 1) || ((in_array($droit, $liste_droit_acces)) && in_array(1, $array_modif))) {
138
				return true;
139
			}
140
			else {
141
				return false;
142
			}
143
		}
144
		//-------------------------- FIN GETTER ----------------------------------------------------------------------------//
145
    
146
    
147
    
148
		//-------------------------- SETTER ----------------------------------------------------------------------------//
149
150
		//-------------------------- FIN SETTER ----------------------------------------------------------------------------//
151
	}