Serenity Operating System
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}