aboutsummaryrefslogtreecommitdiff
path: root/app/class/user.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/class/user.php')
-rw-r--r--app/class/user.php58
1 files changed, 58 insertions, 0 deletions
diff --git a/app/class/user.php b/app/class/user.php
new file mode 100644
index 0000000..77d6ba2
--- /dev/null
+++ b/app/class/user.php
@@ -0,0 +1,58 @@
+<?php
+
+class User
+{
+ protected $level = 0;
+
+ public function __construct($datas = []) {
+ if(!empty($datas)) {
+ $this->hydrate($datas);
+ }
+ }
+
+ public function hydrate(array $datas = [])
+ {
+ foreach ($datas as $key => $value) {
+ $method = 'set' . $key;
+
+ if (method_exists($this, $method)) {
+ $this->$method($value);
+ }
+ }
+ }
+
+ public function setlevel($level)
+ {
+ $this->level = $level;
+ }
+
+ public function level()
+ {
+ return $this->level;
+ }
+
+ public function isvisitor()
+ {
+ return $this->level === Modeluser::FREE;
+ }
+
+ public function canedit()
+ {
+ // a modifier en prenant compte du code invitation de l'article
+ return $this->level >= Modeluser::EDITOR;
+ }
+
+ public function cancreate()
+ {
+ return $this->level >=Modeluser::EDITOR;
+ }
+
+ public function isadmin()
+ {
+ return $this->level === Modeluser::ADMIN;
+ }
+}
+
+
+
+?> \ No newline at end of file