fix: allow MANAGE_COMMUNITIES user permission to bypass read access
This commit is contained in:
parent
85bf844e2d
commit
5d53ceb09c
1 changed files with 15 additions and 3 deletions
|
@ -19,8 +19,16 @@ macro_rules! check_permissions {
|
|||
($community:ident, $jar:ident, $data:ident, $user:ident) => {{
|
||||
let mut is_member: bool = false;
|
||||
let mut can_manage_pins: bool = false;
|
||||
let mut can_manage_communities: bool = false;
|
||||
|
||||
if let Some(ref ua) = $user {
|
||||
if ua
|
||||
.permissions
|
||||
.check(tetratto_core::model::permissions::FinePermission::MANAGE_COMMUNITIES)
|
||||
{
|
||||
can_manage_communities = true;
|
||||
}
|
||||
|
||||
if let Ok(membership) = $data
|
||||
.0
|
||||
.get_membership_by_owner_community(ua.id, $community.id)
|
||||
|
@ -44,11 +52,15 @@ macro_rules! check_permissions {
|
|||
|
||||
match $community.read_access {
|
||||
CommunityReadAccess::Joined => {
|
||||
if !can_manage_communities {
|
||||
if !is_member {
|
||||
(false, can_manage_pins)
|
||||
} else {
|
||||
(true, can_manage_pins)
|
||||
}
|
||||
} else {
|
||||
(true, true)
|
||||
}
|
||||
}
|
||||
_ => (true, can_manage_pins),
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue