From 66fcc037e3e06a38475ccc9ffa7ff3b1713ddece Mon Sep 17 00:00:00 2001
From: caryoscelus <caryoscelus@gmx.com>
Date: Mon, 24 Jan 2022 02:05:41 +0000
Subject: [PATCH] change of ADMIN privilege management

- don't grant ADMIN permission to home or update pages
- allow granting ADMIN permission via `--admin_pages` command line option
---
 CHANGELOG.md     | 5 +++++
 src/Config.py    | 1 +
 src/Site/Site.py | 4 ++--
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index b0545761..be61f424 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+### zeronet-conservancy 0.7.3+ (master)
+maintainers: @caryoscelus
+- don't grant ADMIN permission to home or update pages
+- allow granting ADMIN permission via `--admin_pages` command line option
+
 ### zeronet-conservancy 0.7.3 (2022-01-21) Rev5000
 maintainers: @caryoscelus
 - forked from the latest py3 branch of ZeroNet
diff --git a/src/Config.py b/src/Config.py
index ce3487e6..779e6d53 100644
--- a/src/Config.py
+++ b/src/Config.py
@@ -260,6 +260,7 @@ class Config(object):
                                  metavar='address')
         self.parser.add_argument('--updatesite', help='Source code update site', default='1uPDaT3uSyWAPdCv1WkMb5hBQjWSNNACf',
                                  metavar='address')
+        self.parser.add_argument('--admin_pages', help='Pages with admin privileges', default=[], metavar='address', nargs='*')
         self.parser.add_argument('--dist_type', help='Type of installed distribution', default='source')
 
         self.parser.add_argument('--size_limit', help='Default site size limit in MB', default=10, type=int, metavar='limit')
diff --git a/src/Site/Site.py b/src/Site/Site.py
index 354fe9c0..ea19c4a2 100644
--- a/src/Site/Site.py
+++ b/src/Site/Site.py
@@ -110,8 +110,8 @@ class Site(object):
             if config.download_optional == "auto":
                 self.settings["autodownloadoptional"] = True
 
-        # Add admin permissions to homepage
-        if self.address in (config.homepage, config.updatesite) and "ADMIN" not in self.settings["permissions"]:
+        # Add admin permissions according to user settings
+        if self.address in config.admin_pages and "ADMIN" not in self.settings["permissions"]:
             self.settings["permissions"].append("ADMIN")
 
         return