]>
jfr.im git - irc/unrealircd/unrealircd-webpanel.git/blob - settings/user-edit.php
3 require_once "../inc/common.php";
4 require_once "../inc/header.php";
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();
17 if ($postbutton && isset($_POST['user_role']) && $caneditpermissions)
19 if ($_POST['user_role'] != $edit_user->user_meta
['role'])
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");
27 if ($postbutton && $can_edit_profile)
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;
37 $session_timeout = (isset($_POST['session_timeout']) && strlen($_POST['session_timeout'])) ? $_POST['session_timeout'] : 3600;
39 if (!$array['update_pass'])
41 unset($array['update_pass']);
42 unset($array['update_pass_conf']);
44 elseif ($array['update_pass'] == $array['update_pass_conf'])
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']);
53 Message
::Fail("Could not update password: Passwords did not match");
54 unset($array['update_pass']);
55 unset($array['update_pass_conf']);
57 $edit_user->update_core_info($array);
58 $edit_user->add_meta("session_timeout", $session_timeout);
59 $edit_user = new PanelUser($edit_user->username
);
62 <h4
>Edit User
: "<?php echo $edit_user->username; ?>"</h4
>
64 <form method
="post" action
="user-edit.php?id=<?php echo $edit_user->id; ?>" autocomplete
="off" enctype
="multipart/form-data">
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; ?>">
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">
77 foreach($roles_list as $s => $l)
79 $selected = ($s == $edit_user->user_meta
['role']) ? "selected=\"selected\"" : "";
80 echo "<option value=\"$s\" $selected>$s</option>";
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; ?>">
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; ?>">
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
>
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; ?>">
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; ?>">
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">
132 <button type
="submit" name
="update_user" class="btn btn-primary">Save Changes
</button
><br
>
135 require_once "../inc/footer.php";