]> jfr.im git - irc/unrealircd/unrealircd-webpanel.git/blob - settings/user-edit.php
Update header.php
[irc/unrealircd/unrealircd-webpanel.git] / settings / user-edit.php
1 <?php
2
3 require_once "../common.php";
4 require_once "../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 $caneditpermissions = (user_can($us, PERMISSION_MANAGE_USERS)) ? true : false;
12 $can_edit = ($caneditpermissions) ? "" : "disabled";
13 $postbutton = (isset($_POST['update_user'])) ? true : false;
14 $permissions = (isset($_POST['permissions'])) ? $_POST['permissions'] : [];
15 $edit_perms = (isset($edit_user->user_meta['permissions'])) ? unserialize($edit_user->user_meta['permissions']) : [];
16
17 /* Check if they can edit their permissions and if the permissions have indeed been changed */
18 if ($postbutton && is_array($permissions) && $caneditpermissions
19 && $permissions != $edit_perms)
20 {
21 foreach ($permissions as $p)
22 if (!in_array($p, $edit_perms))
23 $edit_user->add_permission($p);
24
25 foreach($edit_perms as $p)
26 if (!in_array($p, $permissions))
27 $edit_user->delete_permission($p);
28
29 Message::Success("Permissions for <strong>$edit_user->username</strong> have been updated");
30 }
31
32 if ($postbutton && $can_edit_profile)
33 {
34 $array['update_fname'] = (isset($_POST['first_name']) && strlen($_POST['first_name'])) ? $_POST['first_name'] : false;
35 $array['update_lname'] = (isset($_POST['last_name']) && strlen($_POST['last_name'])) ? $_POST['last_name'] : false;
36 $array['update_bio'] = (isset($_POST['bio']) && strlen($_POST['bio'])) ? $_POST['bio'] : false;
37 $array['update_email'] = (isset($_POST['email']) && strlen($_POST['email'])) ? $_POST['email'] : false;
38 $array['update_pass'] = (isset($_POST['password']) && strlen($_POST['password'])) ? $_POST['password'] : false;
39 $array['update_pass_conf'] = (isset($_POST['passwordconfirm']) && strlen($_POST['passwordconfirm'])) ? $_POST['passwordconfirm'] : false;
40 if ($array['update_pass'] == $array['update_pass_conf'])
41 {
42 $array['update_pass_conf'] = password_hash($array['update_pass_conf'], PASSWORD_ARGON2ID);
43 unset($array['update_pass']);
44 }
45 else
46 {
47 Message::Fail("Could not update password: Passwords did not match");
48 unset($array['update_pass']);
49 unset($array['update_pass_conf']);
50 }
51 $edit_user->update_core_info($array);
52 $edit_user = new PanelUser($edit_user->username);
53 }
54 ?>
55 <h4>Edit User: "<?php echo $edit_user->username; ?>"</h4>
56 <br>
57 <form method="post" action="user-edit.php?id=<?php echo $edit_user->id; ?>" autocomplete="off" enctype="multipart/form-data">
58 <?php if ($can_edit_profile) { ?>
59 <a class="btn btn-<?php echo (user_can($us, PERMISSION_MANAGE_USERS)) ? "danger" : "info"; ?>" data-toggle="collapse" href="#collapseExample" role="button" aria-expanded="false" aria-controls="collapseExample">
60 <?php echo (user_can($us, PERMISSION_MANAGE_USERS)) ? "Edit" : "View"; ?> Permissions
61 </a>
62 <div class="collapse" id="collapseExample">
63 <br>
64 <div class="card card-body">
65 <h6>Here are all the things <?php echo $edit_user->username; ?> can do</h6>
66 <?php generate_panel_user_permission_table($edit_user); ?>
67 </div>
68 </div>
69 <?php } ?>
70 <br><br>
71 <div class="input-group mb-3">
72 <div class="input-group-prepend">
73 <span class="input-group-text" style="width: 100px;">@</span>
74 </div><input disabled type="text" class="form-control" name="username" id="username" placeholder="<?php echo $edit_user->username; ?>">
75 </div>
76
77 <div class="input-group mb-3">
78 <div class="input-group-prepend">
79 <span class="input-group-text" style="width: 100px;">First Name</span>
80 </div><input <?php echo $can_edit; ?> type="text" class="form-control" name="first_name" id="first_name" placeholder="<?php echo $edit_user->first_name; ?>">
81 </div>
82
83
84 <div class="input-group mb-3">
85 <div class="input-group-prepend">
86 <span class="input-group-text" style="width: 100px;">Last Name</span>
87 </div><input <?php echo $can_edit; ?> type="text" class="form-control" name="last_name" id="last_name" placeholder="<?php echo $edit_user->last_name; ?>">
88 </div>
89
90
91 <div class="input-group mb-3">
92 <div class="input-group-prepend">
93 <span class="input-group-text" style="width: 100px;">Bio</span>
94 </div><textarea <?php echo $can_edit; ?> class="form-control" name="bio" id="username"><?php echo $edit_user->bio; ?></textarea>
95 </div>
96
97
98 <div class="input-group mb-3">
99 <div class="input-group-prepend">
100 <span class="input-group-text" style="width: 100px;">Email</span>
101 </div><input <?php echo $can_edit; ?> type="text" class="form-control" name="email" id="email" autocomplete="off" value="<?php echo $edit_user->email; ?>">
102 </div>
103
104 <div class="input-group mb-3">
105 <div class="input-group-prepend">
106 <span class="input-group-text" style="width: 150px;">New Password</span>
107 </div><input <?php echo $can_edit; ?> type="password" class="form-control" name="password" id="password" autocomplete="off">
108 </div><div class="input-group mb-3">
109 <div class="input-group-prepend">
110 <span class="input-group-text" style="width: 150px;">Confirm Password</span>
111 </div><input <?php echo $can_edit; ?> type="password" class="form-control" name="passwordconfirm" id="passwordconfirm" autocomplete="off">
112 </div>
113
114 <br>
115 <button type="submit" name="update_user" class="btn btn-primary">Save Changes</button><br>
116 </form>