diff --git a/daemon.py b/daemon.py index eefc8965b..9f471794c 100644 --- a/daemon.py +++ b/daemon.py @@ -47,6 +47,7 @@ from matrix import getMatrixAddress from matrix import setMatrixAddress from donate import getDonationUrl from donate import setDonationUrl +from person import getLockedAccount from person import setPersonNotes from person import getDefaultPersonContext from person import savePersonQrcode @@ -5214,11 +5215,13 @@ class PubServer(BaseHTTPRequestHandler): jamiAddress = None ssbAddress = None emailAddress = None + lockedAccount = False actorJson = getPersonFromCache(baseDir, optionsActor, self.server.personCache, True) if actorJson: + lockedAccount = getLockedAccount(actorJson) donateUrl = getDonationUrl(actorJson) xmppAddress = getXmppAddress(actorJson) matrixAddress = getMatrixAddress(actorJson) @@ -5247,7 +5250,8 @@ class PubServer(BaseHTTPRequestHandler): PGPpubKey, PGPfingerprint, emailAddress, self.server.dormantMonths, - backToPath).encode('utf-8') + backToPath, + lockedAccount).encode('utf-8') msglen = len(msg) self._set_headers('text/html', msglen, cookie, callingDomain) diff --git a/person.py b/person.py index b7e80061a..8cf6a0511 100644 --- a/person.py +++ b/person.py @@ -201,6 +201,16 @@ def getDefaultPersonContext() -> str: } +def getLockedAccount(actorJson: {}) -> bool: + """Returns whether the given account requires follower approval + """ + if not actorJson.get('manuallyApprovesFollowers'): + return False + if actorJson['manuallyApprovesFollowers'] is True: + return True + return False + + def _createPersonBase(baseDir: str, nickname: str, domain: str, port: int, httpPrefix: str, saveToFile: bool, manualFollowerApproval: bool, diff --git a/webapp_person_options.py b/webapp_person_options.py index cf6ecadbc..60ecc2eff 100644 --- a/webapp_person_options.py +++ b/webapp_person_options.py @@ -45,7 +45,8 @@ def htmlPersonOptions(defaultTimeline: str, PGPfingerprint: str, emailAddress: str, dormantMonths: int, - backToPath: str) -> str: + backToPath: str, + lockedAccount: bool) -> str: """Show options for a person: view/follow/block/report """ optionsDomain, optionsPort = getDomainFromActor(optionsActor) @@ -112,6 +113,8 @@ def htmlPersonOptions(defaultTimeline: str, '" ' + getBrokenLinkSubstitute() + '/>\n' handle = getNicknameFromActor(optionsActor) + '@' + optionsDomain handleShown = handle + if lockedAccount: + handleShown += '🔒' if dormant: handleShown += ' 💤' optionsStr += \