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