Serenity Operating System
at master 30 lines 1.1 kB view raw
1/* 2 * Copyright (c) 2022, Andreas Kling <kling@serenityos.org> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#include <Kernel/FileSystem/InodeMetadata.h> 8#include <Kernel/Process.h> 9 10namespace Kernel { 11 12bool InodeMetadata::may_read(Credentials const& credentials, UseEffectiveIDs use_effective_ids) const 13{ 14 bool eids = use_effective_ids == UseEffectiveIDs::Yes; 15 return may_read(eids ? credentials.euid() : credentials.uid(), eids ? credentials.egid() : credentials.gid(), credentials.extra_gids()); 16} 17 18bool InodeMetadata::may_write(Credentials const& credentials, UseEffectiveIDs use_effective_ids) const 19{ 20 bool eids = use_effective_ids == UseEffectiveIDs::Yes; 21 return may_write(eids ? credentials.euid() : credentials.uid(), eids ? credentials.egid() : credentials.gid(), credentials.extra_gids()); 22} 23 24bool InodeMetadata::may_execute(Credentials const& credentials, UseEffectiveIDs use_effective_ids) const 25{ 26 bool eids = use_effective_ids == UseEffectiveIDs::Yes; 27 return may_execute(eids ? credentials.euid() : credentials.uid(), eids ? credentials.egid() : credentials.gid(), credentials.extra_gids()); 28} 29 30}