aboutsummaryrefslogtreecommitdiff
path: root/views
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2025-02-02 15:52:58 +0200
committerSyndamia <kamen@syndamia.com>2025-02-02 15:52:58 +0200
commite0fe3d0a5b6dd8bf4ba11eee10adfb6be3f5ab31 (patch)
treee0562c4683f27c7700ceb16e6faa3a06dd3f50f8 /views
parent179ebaebc36b6dc470dacad5a9020e4d6bf9921a (diff)
downloadnowayforward_human-e0fe3d0a5b6dd8bf4ba11eee10adfb6be3f5ab31.tar
nowayforward_human-e0fe3d0a5b6dd8bf4ba11eee10adfb6be3f5ab31.tar.gz
nowayforward_human-e0fe3d0a5b6dd8bf4ba11eee10adfb6be3f5ab31.zip
feat: Implement admin panel with the ability to change role of users
Diffstat (limited to 'views')
-rw-r--r--views/admin/index.php34
-rw-r--r--views/admin/meta.php4
-rw-r--r--views/global/router.php1
-rw-r--r--views/user/index.php5
4 files changed, 44 insertions, 0 deletions
diff --git a/views/admin/index.php b/views/admin/index.php
new file mode 100644
index 0000000..69495d6
--- /dev/null
+++ b/views/admin/index.php
@@ -0,0 +1,34 @@
+<?php
+ $user = require_login();
+?>
+
+<?php if ($user->Role === 'Admin'): ?>
+ <h2>Change role</h2>
+
+ <form action="#" method="POST" class="font-115">
+ <input type="hidden" name="method" value="PATCH">
+ <?php if (isset($role_status)): ?>
+ <?php if ($role_status !== ""): ?>
+ <p class="item error"><span>
+ <strong>Error:</strong> <?= $role_status ?>
+ </span></p>
+ <?php else: ?>
+ <p class="item success">
+ Success!
+ </p>
+ <?php endif; ?>
+ <?php endif; ?>
+
+ <input type="hidden" name="type" value="role">
+ <input type="text" name="username" placeholder="Username">
+ <select name="role" required>
+ <option value="User">User</option>
+ <option value="Admin">Admin</option>
+ </select>
+ <input type="submit" value="Modify">
+ </form>
+
+<?php else: ?>
+ <h2>Permission denied, you're not an admin!</h2>
+
+<?php endif; ?>
diff --git a/views/admin/meta.php b/views/admin/meta.php
new file mode 100644
index 0000000..0a151ba
--- /dev/null
+++ b/views/admin/meta.php
@@ -0,0 +1,4 @@
+<?php
+
+$title = 'Admin panel';
+$controller = 'admin';
diff --git a/views/global/router.php b/views/global/router.php
index 5b0bd01..ab3a0be 100644
--- a/views/global/router.php
+++ b/views/global/router.php
@@ -46,6 +46,7 @@ function route_view() {
case '/login': return '/session/create';
case '/logout': return '/session/delete';
case '/list': return '/list';
+ case '/admin': return '/admin';
case '/authenticate':
return '/user/authenticate.php';
diff --git a/views/user/index.php b/views/user/index.php
index 066fd69..82c95c8 100644
--- a/views/user/index.php
+++ b/views/user/index.php
@@ -21,6 +21,11 @@
<form action="/user/settings" method="GET">
<input type="submit" value="Account settings">
</form>
+ <?php if ($user->Role === 'Admin'): ?>
+ <form action="/admin" method="GET">
+ <input type="submit" value="Admin panel">
+ </form>
+ <?php endif; ?>
</section>
<script type="text/javascript">
function showUserButtons() {