GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — src: simplify permissions with BooleanPermissions · nodejs/node@981cfa5

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
  • node.gyp
  • src/permission
    • addon_permission.cc
    • addon_permission.h
    • boolean_permission.h
    • child_process_permission.cc
    • child_process_permission.h
    • ffi_permission.cc
    • ffi_permission.h
    • fs_permission.h
    • inspector_permission.cc
    • inspector_permission.h
    • net_permission.cc
    • net_permission.h
    • openssl_store_permission.cc
    • openssl_store_permission.h
    • permission.cc
    • wasi_permission.cc
    • wasi_permission.h
    • worker_permission.cc
    • worker_permission.h
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎node.gyp‎

Copy file name to clipboardExpand all lines: node.gyp
+2-16Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -177,16 +177,8 @@
177177
'src/node_worker.cc',
178178
'src/node_zlib.cc',
179179
'src/path.cc',
180-
'src/permission/child_process_permission.cc',
181-
'src/permission/openssl_store_permission.cc',
182-
'src/permission/ffi_permission.cc',
183180
'src/permission/fs_permission.cc',
184-
'src/permission/inspector_permission.cc',
185181
'src/permission/permission.cc',
186-
'src/permission/wasi_permission.cc',
187-
'src/permission/worker_permission.cc',
188-
'src/permission/net_permission.cc',
189-
'src/permission/addon_permission.cc',
190182
'src/pipe_wrap.cc',
191183
'src/process_wrap.cc',
192184
'src/signal_wrap.cc',
@@ -314,16 +306,10 @@
314306
'src/node_watchdog.h',
315307
'src/node_worker.h',
316308
'src/path.h',
317-
'src/permission/child_process_permission.h',
318-
'src/permission/openssl_store_permission.h',
319-
'src/permission/ffi_permission.h',
309+
'src/permission/boolean_permission.h',
320310
'src/permission/fs_permission.h',
321-
'src/permission/inspector_permission.h',
322311
'src/permission/permission.h',
323-
'src/permission/wasi_permission.h',
324-
'src/permission/worker_permission.h',
325-
'src/permission/net_permission.h',
326-
'src/permission/addon_permission.h',
312+
'src/permission/permission_base.h',
327313
'src/pipe_wrap.h',
328314
'src/req_wrap.h',
329315
'src/req_wrap-inl.h',
Collapse file

‎src/permission/addon_permission.cc‎

Copy file name to clipboardExpand all lines: src/permission/addon_permission.cc
-30Lines changed: 0 additions & 30 deletions
This file was deleted.
Collapse file

‎src/permission/addon_permission.h‎

Copy file name to clipboardExpand all lines: src/permission/addon_permission.h
-34Lines changed: 0 additions & 34 deletions
This file was deleted.
Collapse file

‎src/permission/boolean_permission.h‎

Copy file name to clipboard
+54Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
#ifndef SRC_PERMISSION_BOOLEAN_PERMISSION_H_
2+
#define SRC_PERMISSION_BOOLEAN_PERMISSION_H_
3+
4+
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
5+
6+
#include "permission/permission_base.h"
7+
8+
namespace node {
9+
10+
namespace permission {
11+
12+
// A simple boolean permission that either denies or allows access.
13+
// Used for permission scopes that don't need per-resource granularity.
14+
template <bool deny_only>
15+
class BooleanPermission final : public PermissionBase {
16+
public:
17+
void Apply(Environment* env,
18+
std::span<const std::string> allow,
19+
PermissionScope scope) override {
20+
flag_ = true;
21+
}
22+
23+
void Drop(Environment* env,
24+
PermissionScope scope,
25+
std::string_view param) override {
26+
flag_ = deny_only;
27+
}
28+
29+
bool is_granted(Environment* env,
30+
PermissionScope perm,
31+
std::string_view param) const override {
32+
if constexpr (deny_only) {
33+
return !flag_;
34+
} else {
35+
return flag_;
36+
}
37+
}
38+
39+
private:
40+
bool flag_ = false;
41+
};
42+
43+
// Once denied, the permission cannot be re-granted.
44+
using DenyOnlyPermission = BooleanPermission<true>;
45+
46+
// Apply grants access, Drop revokes.
47+
using AllowRevokePermission = BooleanPermission<false>;
48+
49+
} // namespace permission
50+
51+
} // namespace node
52+
53+
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
54+
#endif // SRC_PERMISSION_BOOLEAN_PERMISSION_H_
Collapse file

‎src/permission/child_process_permission.cc‎

Copy file name to clipboardExpand all lines: src/permission/child_process_permission.cc
-30Lines changed: 0 additions & 30 deletions
This file was deleted.
Collapse file

‎src/permission/child_process_permission.h‎

Copy file name to clipboardExpand all lines: src/permission/child_process_permission.h
-33Lines changed: 0 additions & 33 deletions
This file was deleted.
Collapse file

‎src/permission/ffi_permission.cc‎

Copy file name to clipboardExpand all lines: src/permission/ffi_permission.cc
-29Lines changed: 0 additions & 29 deletions
This file was deleted.
Collapse file

‎src/permission/ffi_permission.h‎

Copy file name to clipboardExpand all lines: src/permission/ffi_permission.h
-33Lines changed: 0 additions & 33 deletions
This file was deleted.
Collapse file

‎src/permission/fs_permission.h‎

Copy file name to clipboardExpand all lines: src/permission/fs_permission.h
+5-3Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@ class FSPermission final : public PermissionBase {
3030
Node* wildcard_child = nullptr;
3131
bool is_leaf = false;
3232

33-
explicit Node(std::string_view pre)
34-
: prefix(pre) {}
33+
explicit Node(std::string_view pre) : prefix(pre) {}
3534

3635
Node() = default;
3736

@@ -44,7 +43,10 @@ class FSPermission final : public PermissionBase {
4443

4544
void SetChild(char label, Node* node) {
4645
for (auto& [c, n] : children) {
47-
if (c == label) { n = node; return; }
46+
if (c == label) {
47+
n = node;
48+
return;
49+
}
4850
}
4951
children.emplace_back(label, node);
5052
}
Collapse file

‎src/permission/inspector_permission.cc‎

Copy file name to clipboardExpand all lines: src/permission/inspector_permission.cc
-30Lines changed: 0 additions & 30 deletions
This file was deleted.

0 commit comments

Comments
0 (0)
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.