Skip to content

Commit cbc59da

Browse files
committed
List current logged-in HoO user as editable row in cms_users
- make user visible (non-gray) - only for HoO users - enable user editing themselves (no 403 error when clicking row)
1 parent 9a837ab commit cbc59da

2 files changed

Lines changed: 10 additions & 4 deletions

File tree

include/cms_users.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,14 @@
4646
// Do not forget to specify :userGroupLevel and :user in the db call later
4747
// related to this trello card https://trello.com/c/KI47eGPI
4848
$cms_users_same_or_upper_level_query = '
49-
SELECT u.*, 0 AS visible, g.label AS usergroup, 1 AS preventdelete, 1 as disableifistrue
49+
SELECT u.*, IF(u.id = :user, 1, 0) AS visible, g.label AS usergroup, 1 AS preventdelete, 1 as disableifistrue
5050
FROM cms_users AS u
5151
INNER JOIN cms_usergroups AS g ON g.id = u.cms_usergroups_id
5252
INNER JOIN cms_usergroups_camps AS uc ON uc.cms_usergroups_id = g.id
5353
INNER JOIN cms_usergroups_levels AS l ON l.id = g.userlevel
54-
WHERE (l.level >= :userGroupLevel AND u.id != :user)
55-
AND uc.camp_id IN ('.($_SESSION['camp']['id'] ?: 0).')
54+
WHERE l.level >= :userGroupLevel
55+
AND (u.id != :user OR :userGroupLevel = 100)
56+
AND uc.camp_id IN ('.(intval($_SESSION['camp']['id']) ?: 0).')
5657
AND NOT (u.valid_lastday < CURDATE() AND UNIX_TIMESTAMP(u.valid_lastday) != 0)
5758
AND UNIX_TIMESTAMP(u.deleted) = 0
5859
GROUP BY u.id

include/cms_users_edit.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,12 @@
114114
FROM cms_usergroups AS ug
115115
LEFT OUTER JOIN cms_usergroups_levels AS ugl ON ugl.id=ug.userlevel
116116
WHERE ug.id = :id AND (NOT ug.deleted OR ug.deleted IS NULL)', ['id' => $data['cms_usergroups_id']]);
117-
if (!$_SESSION['user']['is_admin'] && ($data && ($data['is_admin'] || ($_SESSION['organisation']['id'] != $requesteduser['organisation_id']) || ($_SESSION['usergroup']['userlevel'] <= $requesteduser['userlevel'])))) {
117+
if (!$_SESSION['user']['is_admin']
118+
&& $data
119+
&& $data['id'] != $_SESSION['user']['id']
120+
&& ($data['is_admin']
121+
|| $_SESSION['organisation']['id'] != $requesteduser['organisation_id']
122+
|| $_SESSION['usergroup']['userlevel'] <= $requesteduser['userlevel'])) {
118123
throw new Exception('You do not have access to this user!', 403);
119124
}
120125

0 commit comments

Comments
 (0)