]> jfr.im git - irc/unrealircd/unrealircd-webpanel.git/blob - login/index.php
Reorder permission defines comments so info shows in editors
[irc/unrealircd/unrealircd-webpanel.git] / login / index.php
1
2 <?php
3 require_once "../common.php";
4
5 $logout = false;
6 $redirect = (isset($_GET['redirect'])) ? $_GET['redirect'] : BASE_URL;
7
8 if (!empty($_GET['logout']))
9 {
10 if (!isset($_SESSION['id']))
11 $failmsg = "Nothing to logout from";
12 else {
13 session_destroy();
14 $logout = true;
15 }
16 }
17 if (!empty($_POST))
18 {
19 if ($_POST['username'] && $_POST['password'])
20 {
21
22 /* securitah */
23 security_check();
24 $user = new PanelUser($_POST['username']);
25
26 /* not being too informative with the login error in case of attackers */
27 if (!$user->id)
28 {
29 $failmsg = "Incorrect login";
30 }
31 else if ($user->password_verify($_POST['password']))
32 {
33 $_SESSION['id'] = $user->id;
34 header('Location: ' . $redirect);
35 $user->add_meta("last_login", date("Y-m-d m:i:s"));
36 }
37 else
38 {
39 $failmsg = "Incorrect login";
40 }
41
42 }
43 else
44 $failmsg = "Couldn't log you in: Missing credentials";
45 }
46
47 ?><!DOCTYPE html>
48 <head>
49 <!-- Latest compiled and minified CSS -->
50 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css">
51
52 <!-- jQuery library -->
53 <script src="https://cdn.jsdelivr.net/npm/jquery@3.6.1/dist/jquery.slim.min.js"></script>
54
55 <!-- Popper JS -->
56 <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
57
58 <!-- Latest compiled JavaScript -->
59 <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js"></script>
60
61 <!-- Font Awesome icons -->
62 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css">
63
64 <script src="<?php echo BASE_URL; ?>js/unrealircd-admin.js"></script>
65 <title>UnrealIRCd Panel</title>
66 <link rel="icon" type="image/x-icon" href="<?php echo BASE_URL; ?>img/favicon.ico">
67 <link href="<?php echo BASE_URL; ?>css/unrealircd-admin.css" rel="stylesheet">
68 </head>
69 <script>
70 $(document).ready(function(){
71 $("#loginModal").modal({backdrop: 'static', keyboard: false}, 'show');
72 });
73
74 </script>
75 <body role="document">
76 <div class="container-fluid">
77 <form method="post" action="index.php?redirect=<?php echo $redirect; ?>">
78 <div class="modal" id="loginModal" data-backdrop="static" data-keyboard="false" tabindex="-1" aria-labelledby="loginModal" aria-hidden="false"></a>
79 <div class="modal-dialog modal-dialog-centered">
80 <div class="modal-content">
81 <div class="modal-header" style="margin: 0 auto;">
82 <h3 class="modal-title" id="loginModaltitle"><img src="<?php echo BASE_URL; ?>img/favicon.ico"> Log in to use Admin Panel</h3>
83 </div>
84 <div class="modal-body">
85 <div class="form-group">
86 <?php
87 if (isset($failmsg)) Message::Fail($failmsg);
88 if ($logout)
89 Message::Success("You have been logged out");
90 ?>
91 <br>
92 <div class="input-group mb-3">
93 <div class="input-group-prepend">
94 <span class="input-group-text" id="basic-addon1"><i class="fa-solid fa-user"></i></span>
95 </div><input type="text" class="form-control" name="username" id="username" placeholder="Username" aria-label="Username" aria-describedby="basic-addon1">
96 </div>
97
98 </div>
99 <div class="form-group">
100 <div class="input-group mb-3">
101 <div class="input-group-prepend">
102 <span class="input-group-text" id="basic-addon1"><i class="fa-solid fa-key"></i></span>
103 </div><input type="password" class="form-control" name="password" id="password" placeholder="Password">
104 </div>
105
106 </div>
107 </div>
108 <div class="modal-footer">
109 <a class="btn btn-secondary" href="#">Cancel</a>
110 <button type="submit" class="btn btn-primary">Log-In</button>
111 </div>
112 </div>
113 </div>
114 </div>
115 </form>
116 <?php require_once "../footer.php";