]> jfr.im git - irc/unrealircd/unrealircd-webpanel.git/blob - settings/user-edit.php
Finish switching to Roles
[irc/unrealircd/unrealircd-webpanel.git] / settings / user-edit.php
1 <?php
2
3 require_once "../inc/common.php";
4 require_once "../inc/header.php";
5 do_log($_POST);
6
7 $us = unreal_get_current_user();
8 $id = (isset($_GET['id'])) ? $_GET['id'] : $us->id;
9 $edit_user = new PanelUser(NULL, $id);
10 $can_edit_profile = (user_can($us, PERMISSION_MANAGE_USERS) || $edit_user->id == $us->id) ? true : false;
11 $caneditprofile = ($can_edit_profile) ? "" : "disabled";
12 $caneditpermissions = (user_can($us, PERMISSION_MANAGE_USERS)) ? true : false;
13 $can_edit = ($caneditpermissions) ? "" : "disabled";
14 $postbutton = (isset($_POST['update_user'])) ? true : false;
15 $roles_list = get_panel_user_roles_list();
16
17 if ($postbutton && isset($_POST['user_role']) && $caneditpermissions)
18 {
19 if ($_POST['user_role'] != $edit_user->user_meta['role'])
20 {
21 $edit_user->add_meta("role", $_POST['user_role']);
22 Message::Success("Updated the role of $edit_user->username");
23 }
24 }
25
26 if ($postbutton && $can_edit_profile)
27 {
28 // Goes via core:
29 $array['update_fname'] = (isset($_POST['first_name']) && strlen($_POST['first_name'])) ? $_POST['first_name'] : false;
30 $array['update_lname'] = (isset($_POST['last_name']) && strlen($_POST['last_name'])) ? $_POST['last_name'] : false;
31 $array['update_bio'] = (isset($_POST['bio']) && strlen($_POST['bio'])) ? $_POST['bio'] : false;
32 $array['update_email'] = (isset($_POST['email']) && strlen($_POST['email'])) ? $_POST['email'] : false;
33 $array['update_pass'] = (isset($_POST['password']) && strlen($_POST['password'])) ? $_POST['password'] : false;
34 $array['update_pass_conf'] = (isset($_POST['passwordconfirm']) && strlen($_POST['passwordconfirm'])) ? $_POST['passwordconfirm'] : false;
35 // Goes via meta:
36 $session_timeout = (isset($_POST['session_timeout']) && strlen($_POST['session_timeout'])) ? $_POST['session_timeout'] : 3600;
37
38 if (!$array['update_pass'])
39 {
40 unset($array['update_pass']);
41 unset($array['update_pass_conf']);
42 }
43 elseif ($array['update_pass'] == $array['update_pass_conf'])
44 {
45 $array['update_pass_conf'] = PanelUser::password_hash($array['update_pass_conf']);
46 unset($array['update_pass']);
47 }
48 else
49 {
50 Message::Fail("Could not update password: Passwords did not match");
51 unset($array['update_pass']);
52 unset($array['update_pass_conf']);
53 }
54 $edit_user->update_core_info($array);
55 $edit_user->add_meta("session_timeout", $session_timeout);
56 $edit_user = new PanelUser($edit_user->username);
57 }
58 ?>
59 <h4>Edit User: "<?php echo $edit_user->username; ?>"</h4>
60 <br>
61 <form method="post" action="user-edit.php?id=<?php echo $edit_user->id; ?>" autocomplete="off" enctype="multipart/form-data">
62
63 <div class="input-group mb-3">
64 <div class="input-group-prepend">
65 <span class="input-group-text" style="width: 175px;">Username</span>
66 </div><input disabled type="text" class="form-control" name="username" id="username" placeholder="<?php echo $edit_user->username; ?>">
67 </div>
68
69 <div class="input-group mb-3">
70 <div class="input-group-prepend">
71 <span class="input-group-text" style="width: 175px;">Role</span>
72 </div><select name="user_role" <?php echo $can_edit; ?> class="custom-select" id="user_role">
73 <?php
74 foreach($roles_list as $s => $l)
75 {
76 $selected = ($s == $edit_user->user_meta['role']) ? "selected=\"selected\"" : "";
77 echo "<option value=\"$s\" $selected>$s</option>";
78 }
79 ?>
80 </select>
81 </div>
82
83
84
85 <div class="input-group mb-3">
86 <div class="input-group-prepend">
87 <span class="input-group-text" style="width: 175px;">First Name</span>
88 </div><input <?php echo $caneditprofile; ?> type="text" class="form-control" name="first_name" id="first_name" placeholder="<?php echo $edit_user->first_name; ?>">
89 </div>
90
91
92 <div class="input-group mb-3">
93 <div class="input-group-prepend">
94 <span class="input-group-text" style="width: 175px;">Last Name</span>
95 </div><input <?php echo $caneditprofile; ?> type="text" class="form-control" name="last_name" id="last_name" placeholder="<?php echo $edit_user->last_name; ?>">
96 </div>
97
98
99 <div class="input-group mb-3">
100 <div class="input-group-prepend">
101 <span class="input-group-text" style="width: 175px;">Bio</span>
102 </div><textarea <?php echo $caneditprofile; ?> class="form-control" name="bio" id="username"><?php echo $edit_user->bio; ?></textarea>
103 </div>
104
105
106 <div class="input-group mb-3">
107 <div class="input-group-prepend">
108 <span class="input-group-text" style="width: 175px;">Email</span>
109 </div><input <?php echo $caneditprofile; ?> type="text" class="form-control" name="email" id="email" autocomplete="off" value="<?php echo $edit_user->email; ?>">
110 </div>
111
112 <div class="input-group mb-3">
113 <div class="input-group-prepend">
114 <span class="input-group-text" style="width: 175px;">Session timeout</span>
115 </div><input <?php echo $caneditprofile; ?> type="text" class="form-control" name="session_timeout" id="session_timeout" autocomplete="off" value="<?php echo $edit_user->user_meta['session_timeout'] ?? 3600; ?>">
116 </div>
117
118 <div class="input-group mb-3">
119 <div class="input-group-prepend">
120 <span class="input-group-text" style="width: 175px;">New Password</span>
121 </div><input <?php echo $caneditprofile; ?> type="password" class="form-control" name="password" id="password" autocomplete="off">
122 </div><div class="input-group mb-3">
123 <div class="input-group-prepend">
124 <span class="input-group-text" style="width: 175px;">Confirm Password</span>
125 </div><input <?php echo $caneditprofile; ?> type="password" class="form-control" name="passwordconfirm" id="passwordconfirm" autocomplete="off">
126 </div>
127
128 <br>
129 <button type="submit" name="update_user" class="btn btn-primary">Save Changes</button><br>
130 </form>
131 <?php
132 require_once "../inc/footer.php";