InodeMetadata.cpp 1.1 KB

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