Extra checks on moderator status

This is to prevent moderator wars
alt-html-css
Bob Mottram 2020-12-17 09:59:28 +00:00
parent c5c8be599a
commit 721e26a38e
1 changed files with 12 additions and 8 deletions

View File

@ -1766,23 +1766,27 @@ class PubServer(BaseHTTPRequestHandler):
# person options screen, permission to post to newswire # person options screen, permission to post to newswire
# See htmlPersonOptions # See htmlPersonOptions
if '&submitPostToNews=' in optionsConfirmParams: if '&submitPostToNews=' in optionsConfirmParams:
if isModerator(self.server.baseDir, chooserNickname): adminNickname = getConfigParam(self.server.baseDir, 'admin')
if (chooserNickname == adminNickname or
(isModerator(self.server.baseDir, chooserNickname) and
not isModerator(self.server.baseDir, optionsNickname))):
postsToNews = None postsToNews = None
if 'postsToNews=' in optionsConfirmParams: if 'postsToNews=' in optionsConfirmParams:
postsToNews = optionsConfirmParams.split('postsToNews=')[1] postsToNews = optionsConfirmParams.split('postsToNews=')[1]
if '&' in postsToNews: if '&' in postsToNews:
postsToNews = postsToNews.split('&')[0] postsToNews = postsToNews.split('&')[0]
newswireBlockedFilename = \ accountDir = self.server.baseDir + '/accounts/' + \
self.server.baseDir + '/accounts/' + \ optionsNickname + '@' + optionsDomain
optionsNickname + '@' + optionsDomain + '/.nonewswire' newswireBlockedFilename = accountDir + '/.nonewswire'
if postsToNews == 'on': if postsToNews == 'on':
if os.path.isfile(newswireBlockedFilename): if os.path.isfile(newswireBlockedFilename):
os.remove(newswireBlockedFilename) os.remove(newswireBlockedFilename)
else: else:
noNewswireFile = open(newswireBlockedFilename, "w+") if os.path.isdir(accountDir):
if noNewswireFile: noNewswireFile = open(newswireBlockedFilename, "w+")
noNewswireFile.write('\n') if noNewswireFile:
noNewswireFile.close() noNewswireFile.write('\n')
noNewswireFile.close()
self._redirect_headers(usersPath + '/' + self._redirect_headers(usersPath + '/' +
self.server.defaultTimeline + self.server.defaultTimeline +
'?page='+str(pageNumber), cookie, '?page='+str(pageNumber), cookie,