forked from indymedia/epicyon
Remove tags when deleting an account
parent
32d23fbf5f
commit
727c8ca6fc
|
@ -844,7 +844,7 @@ if args.rmaccount:
|
||||||
if not args.domain or not getConfigParam(baseDir,'domain'):
|
if not args.domain or not getConfigParam(baseDir,'domain'):
|
||||||
print('Use the --domain option to set the domain name')
|
print('Use the --domain option to set the domain name')
|
||||||
sys.exit()
|
sys.exit()
|
||||||
if removeAccount(baseDir,nickname,domain):
|
if removeAccount(baseDir,nickname,domain,port):
|
||||||
print('Account for '+handle+' was removed')
|
print('Account for '+handle+' was removed')
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
|
|
30
person.py
30
person.py
|
@ -535,7 +535,34 @@ def suspendAccount(baseDir: str,nickname: str,salts: {}) -> None:
|
||||||
suspendedFile.close()
|
suspendedFile.close()
|
||||||
salts[nickname]=createPassword(32)
|
salts[nickname]=createPassword(32)
|
||||||
|
|
||||||
def removeAccount(baseDir: str,nickname: str,domain: str) -> bool:
|
def removeTagsForNickname(baseDir: str,nickname: str,domain: str,port: int) -> None:
|
||||||
|
"""Removes tags for a nickname
|
||||||
|
"""
|
||||||
|
if not os.path.isdir(baseDir+'/tags'):
|
||||||
|
return
|
||||||
|
domainFull=domain
|
||||||
|
if port:
|
||||||
|
if port!=80 and port!=443:
|
||||||
|
domainFull=domain+':'+str(port)
|
||||||
|
matchStr=domainFull+'/users/'+nickname+'/'
|
||||||
|
directory = os.fsencode(baseDir+'/tags/')
|
||||||
|
for f in os.listdir(directory):
|
||||||
|
filename = os.fsdecode(f)
|
||||||
|
if not filename.endswith(".txt"):
|
||||||
|
continue
|
||||||
|
tagFilename=os.path.join(baseDir+'/accounts/',filename)
|
||||||
|
if matchStr not in open(tagFilename).read():
|
||||||
|
continue
|
||||||
|
with open(tagFilename, "r") as f:
|
||||||
|
lines = f.readlines()
|
||||||
|
tagFile=open(tagFilename,"w+")
|
||||||
|
if tagFile:
|
||||||
|
for tagline in lines:
|
||||||
|
if matchStr not in tagline:
|
||||||
|
tagFile.write(tagline)
|
||||||
|
tagFile.close()
|
||||||
|
|
||||||
|
def removeAccount(baseDir: str,nickname: str,domain: str,port: int) -> bool:
|
||||||
"""Removes an account
|
"""Removes an account
|
||||||
"""
|
"""
|
||||||
# Don't remove the admin
|
# Don't remove the admin
|
||||||
|
@ -555,6 +582,7 @@ def removeAccount(baseDir: str,nickname: str,domain: str) -> bool:
|
||||||
unsuspendAccount(baseDir,nickname)
|
unsuspendAccount(baseDir,nickname)
|
||||||
handle=nickname+'@'+domain
|
handle=nickname+'@'+domain
|
||||||
removePassword(baseDir,nickname)
|
removePassword(baseDir,nickname)
|
||||||
|
removeTagsForNickname(baseDir,nickname,domain,port)
|
||||||
if os.path.isdir(baseDir+'/accounts/'+handle):
|
if os.path.isdir(baseDir+'/accounts/'+handle):
|
||||||
shutil.rmtree(baseDir+'/accounts/'+handle)
|
shutil.rmtree(baseDir+'/accounts/'+handle)
|
||||||
if os.path.isfile(baseDir+'/accounts/'+handle+'.json'):
|
if os.path.isfile(baseDir+'/accounts/'+handle+'.json'):
|
||||||
|
|
Loading…
Reference in New Issue