diff --git a/app/admin/scripts/add-user.php b/app/admin/scripts/add-user.php index 6d2227f..8da0530 100644 --- a/app/admin/scripts/add-user.php +++ b/app/admin/scripts/add-user.php @@ -12,6 +12,11 @@ } elseif (empty($_POST["password"]) || $_POST["password"] != $_POST["confirmPassword"]) { $errors["confirmPassword"] = "Les deux mots de passe ne correspondent pas."; } + if (empty($_POST["quota"])) { + $errors["quota"] = "Veuillez indiquer un quota."; + } else { + $user->setQuota(trim((int)$_POST["quota"])); + } if (empty($errors)) { $user->setPassword(sha1($_POST["password"])); $userStorage->save($user); diff --git a/app/admin/scripts/edit-user.php b/app/admin/scripts/edit-user.php new file mode 100644 index 0000000..a97c5d2 --- /dev/null +++ b/app/admin/scripts/edit-user.php @@ -0,0 +1,27 @@ +fetchByUsername($_GET["username"])) { + header("LOCATION: ?mod=admin&a=users"); + exit; +} + +$user_get = trim($_GET["username"]); + + +$errors = array(); +if ($_SERVER["REQUEST_METHOD"] == "POST") { + + $user->setUsername($user_get); + + if (empty($_POST["quota"])) { + $errors["quota"] = "Veuillez indiquer un quota."; + } else { + $user->setQuota(trim((int)$_POST["quota"])); + } + if (empty($errors)) { + $userStorage->save($user); + header("LOCATION: ?mod=admin&a=users"); + exit; + } +} \ No newline at end of file diff --git a/app/admin/views/add-user.phtml b/app/admin/views/add-user.phtml index 2fa4406..1be2860 100644 --- a/app/admin/views/add-user.phtml +++ b/app/admin/views/add-user.phtml @@ -24,6 +24,13 @@

+
+
+ + +

+ +

| annuler

diff --git a/app/admin/views/edit-user.phtml b/app/admin/views/edit-user.phtml new file mode 100644 index 0000000..353c639 --- /dev/null +++ b/app/admin/views/edit-user.phtml @@ -0,0 +1,14 @@ +
+

Modifier l'utilisateur

+
+
+
+ + +

+ +
+
+

+ | annuler

+
diff --git a/app/admin/views/users.phtml b/app/admin/views/users.phtml index 9f321c7..09e5129 100644 --- a/app/admin/views/users.phtml +++ b/app/admin/views/users.phtml @@ -3,6 +3,8 @@ Nom d'utilisateur + Quota +     @@ -10,6 +12,14 @@ getUsername()); ?> + getQuota(); ?> + + getUsername() != "admin") : ?> + modifier + + - + + getUsername() != "admin") : ?> supprimer diff --git a/app/mail/scripts/form.php b/app/mail/scripts/form.php index fcfdaf7..8c00be6 100644 --- a/app/mail/scripts/form.php +++ b/app/mail/scripts/form.php @@ -1,4 +1,12 @@ fetchAll(); +$user = $userStorage->fetchByUsername($_SESSION["chekyauth"]["username"]); + +if ($user->getQuota() != 0 && count($alerts) >= $user->getQuota()) + $errors["quota"] = "Vous ne pouvez plus ajouter d'alerte, votre quota est atteint (".$user->getQuota().")."; + if (isset($_GET["id"])) { $alert = $storage->fetchById($_GET["id"]); } @@ -14,7 +22,7 @@ } $categoryCollection = new \Lbc\CategoryCollection(); -$errors = array(); + if ($_SERVER["REQUEST_METHOD"] == "POST") { foreach ($_POST AS $name => $value) { diff --git a/app/mail/views/form.phtml b/app/mail/views/form.phtml index 5216d76..212f91d 100644 --- a/app/mail/views/form.phtml +++ b/app/mail/views/form.phtml @@ -2,6 +2,17 @@ $alertCategories = $alert->getCategories(); ?>

Création d'une nouvelle alerte

+ +'.$errors["quota"].'

'; +} +else +{ +?> + +

Options obligatoires

@@ -177,8 +188,6 @@ $alertCategories = $alert->getCategories(); - - - - - + \ No newline at end of file diff --git a/app/models/Storage/Db/User.php b/app/models/Storage/Db/User.php index 01ed655..d9c04ba 100644 --- a/app/models/Storage/Db/User.php +++ b/app/models/Storage/Db/User.php @@ -26,7 +26,8 @@ public function fetchAll() ->setPassword($userDb->password) ->setUsername($userDb->username) ->setApiKey($userDb->api_key) - ->setRssKey($userDb->rss_key); + ->setRssKey($userDb->rss_key) + ->setQuota($userDb->quota); $this->_loadUserOptions($user, $userDb->options); $users[] = $user; } @@ -46,7 +47,8 @@ public function fetchByUsername($username) ->setPassword($userDb->password) ->setUsername($userDb->username) ->setApiKey($userDb->api_key) - ->setRssKey($userDb->rss_key); + ->setRssKey($userDb->rss_key) + ->setQuota($userDb->quota); $this->_loadUserOptions($user, $userDb->options); } return $user; @@ -94,20 +96,23 @@ public function save(\App\User\User $user) `password`, `api_key`, `rss_key`, - `options` + `options`, + `quota` ) VALUES ( '".$this->_connection->real_escape_string($user->getUsername())."', '".$this->_connection->real_escape_string($user->getPassword())."', ".$api_key.", ".$rss_key.", - '".$this->_connection->real_escape_string(json_encode($user->getOptions()))."' + '".$this->_connection->real_escape_string(json_encode($user->getOptions()))."', + '".$this->_connection->real_escape_string($user->getQuota())."' )"); } else { $this->_connection->query("UPDATE `".$this->_table."` SET `password` = '".$this->_connection->real_escape_string($user->getPassword())."', `api_key` = ".$api_key.", `rss_key` = ".$rss_key.", - `options` = '".$this->_connection->real_escape_string(json_encode($user->getOptions()))."' + `options` = '".$this->_connection->real_escape_string(json_encode($user->getOptions()))."', + `quota` = ".(int)$user->getQuota()." WHERE id = ".$user->getId()); } return $this; diff --git a/app/models/User/User.php b/app/models/User/User.php index 77ac07c..b7245cf 100644 --- a/app/models/User/User.php +++ b/app/models/User/User.php @@ -7,6 +7,7 @@ class User protected $_id; protected $_username; protected $_password; + protected $_quota; protected $_api_key; protected $_rss_key; protected $_options = array(); @@ -134,6 +135,24 @@ public function getPassword() return $this->_password; } + /** + * @param string $quota + * @return User + */ + public function setQuota($quota = 0) + { + $this->_quota = (int)$quota; + return $this; + } + + /** + * @return string + */ + public function getQuota() + { + return (int)$this->_quota; + } + /** * Indique si au moins un service de notification est activé. *