Move ocap files to account directories

master
Bob Mottram 2019-07-07 17:33:59 +01:00
parent 46a53072f3
commit d83a063625
3 changed files with 20 additions and 21 deletions

View File

@ -14,17 +14,22 @@ import commentjson
from auth import createPassword from auth import createPassword
def getOcapFilename(baseDir :str,nickname: str,domain: str,actor :str,subdir: str) -> str: def getOcapFilename(baseDir :str,nickname: str,domain: str,actor :str,subdir: str) -> str:
return baseDir+'/ocap/'+subdir+'/'+domain+':'+nickname+':'+actor.replace('/','#')+'.json' if not os.path.isdir(baseDir+'/accounts'):
os.mkdir(baseDir+'/accounts')
def capabilitiesMakeDirs(baseDir: str): ocDir=baseDir+'/accounts/'+nickname+'@'+domain
if not os.path.isdir(baseDir+'/ocap'): if not os.path.isdir(ocDir):
os.mkdir(baseDir+'/ocap') os.mkdir(ocDir)
# for capabilities accepted by this instance
if not os.path.isdir(baseDir+'/ocap/accept'): ocDir=baseDir+'/accounts/'+nickname+'@'+domain+'/ocap'
os.mkdir(baseDir+'/ocap/accept') if not os.path.isdir(ocDir):
# for capabilities granted to this instance os.mkdir(ocDir)
if not os.path.isdir(baseDir+'/ocap/granted'):
os.mkdir(baseDir+'/ocap/granted') ocDir=baseDir+'/accounts/'+nickname+'@'+domain+'/ocap/'+subdir
if not os.path.isdir(ocDir):
os.mkdir(ocDir)
return baseDir+'/accounts/'+nickname+'@'+domain+'/ocap/'+subdir+'/'+actor.replace('/','#')+'.json'
def capabilitiesRequest(baseDir: str,httpPrefix: str,domain: str, \ def capabilitiesRequest(baseDir: str,httpPrefix: str,domain: str, \
requestedActor: str, \ requestedActor: str, \
@ -32,8 +37,6 @@ def capabilitiesRequest(baseDir: str,httpPrefix: str,domain: str, \
# This is sent to the capabilities endpoint /caps/new # This is sent to the capabilities endpoint /caps/new
# which could be instance wide or for a particular person # which could be instance wide or for a particular person
# This could also be added to a follow activity # This could also be added to a follow activity
capabilitiesMakeDirs(baseDir)
ocapId=createPassword(32) ocapId=createPassword(32)
ocapRequest = { ocapRequest = {
"id": httpPrefix+"://"+requestedDomain+"/caps/request/"+ocapId, "id": httpPrefix+"://"+requestedDomain+"/caps/request/"+ocapId,
@ -59,7 +62,6 @@ def capabilitiesAccept(baseDir: str,httpPrefix: str, \
fullDomain=domain+':'+str(port) fullDomain=domain+':'+str(port)
# make directories to store capabilities # make directories to store capabilities
capabilitiesMakeDirs(baseDir)
ocapFilename=getOcapFilename(baseDir,nickname,fullDomain,acceptedActor,'accept') ocapFilename=getOcapFilename(baseDir,nickname,fullDomain,acceptedActor,'accept')
ocapAccept=None ocapAccept=None
@ -91,7 +93,6 @@ def capabilitiesGrantedSave(baseDir :str,nickname :str,domain :str,ocap: {}) ->
""" """
if not ocap.get('actor'): if not ocap.get('actor'):
return False return False
capabilitiesMakeDirs(baseDir)
ocapFilename=getOcapFilename(baseDir,nickname,domain,ocap['actor'],'granted') ocapFilename=getOcapFilename(baseDir,nickname,domain,ocap['actor'],'granted')
with open(ocapFilename, 'w') as fp: with open(ocapFilename, 'w') as fp:
commentjson.dump(ocap, fp, indent=4, sort_keys=False) commentjson.dump(ocap, fp, indent=4, sort_keys=False)

View File

@ -6,7 +6,6 @@ __maintainer__ = "Bob Mottram"
__email__ = "bob@freedombone.net" __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
from capabilities import capabilitiesMakeDirs
from person import createPerson from person import createPerson
from person import createSharedInbox from person import createSharedInbox
from person import createCapabilitiesInbox from person import createCapabilitiesInbox
@ -335,8 +334,6 @@ if not os.path.isdir(baseDir+'/accounts/capabilities@'+domain):
print('Creating capabilities account which can sign requests') print('Creating capabilities account which can sign requests')
createCapabilitiesInbox(baseDir,'capabilities',domain,port,httpPrefix) createCapabilitiesInbox(baseDir,'capabilities',domain,port,httpPrefix)
capabilitiesMakeDirs(baseDir)
if args.testdata: if args.testdata:
nickname='testuser567' nickname='testuser567'
print('Generating some test data for user: '+nickname) print('Generating some test data for user: '+nickname)

View File

@ -313,8 +313,8 @@ def testFollowBetweenServers():
for t in range(10): for t in range(10):
if os.path.isfile(bobDir+'/accounts/bob@'+bobDomain+'/followers.txt'): if os.path.isfile(bobDir+'/accounts/bob@'+bobDomain+'/followers.txt'):
if os.path.isfile(aliceDir+'/accounts/alice@'+aliceDomain+'/following.txt'): if os.path.isfile(aliceDir+'/accounts/alice@'+aliceDomain+'/following.txt'):
if os.path.isfile(bobDir+'/ocap/accept/'+bobDomain+':'+str(bobPort)+':bob:'+httpPrefix+':##'+aliceDomain+':'+str(alicePort)+'#users#alice.json'): if os.path.isfile(bobDir+'/accounts/bob@'+bobDomain+':'+str(bobPort)+'/ocap/accept/'+httpPrefix+':##'+aliceDomain+':'+str(alicePort)+'#users#alice.json'):
if os.path.isfile(aliceDir+'/ocap/granted/'+aliceDomain+':'+str(alicePort)+':alice:'+httpPrefix+':##'+bobDomain+':'+str(bobPort)+'#users#bob.json'): if os.path.isfile(aliceDir+'/accounts/alice@'+aliceDomain+':'+str(alicePort)+'/ocap/granted/'+httpPrefix+':##'+bobDomain+':'+str(bobPort)+'#users#bob.json'):
break break
time.sleep(1) time.sleep(1)
@ -327,8 +327,9 @@ def testFollowBetweenServers():
thrBob.join() thrBob.join()
assert thrBob.isAlive()==False assert thrBob.isAlive()==False
assert os.path.isfile(bobDir+'/ocap/accept/'+bobDomain+':'+str(bobPort)+':bob:'+httpPrefix+':##'+aliceDomain+':'+str(alicePort)+'#users#alice.json') assert os.path.isfile(bobDir+'/accounts/bob@'+bobDomain+':'+str(bobPort)+'/ocap/accept/'+httpPrefix+':##'+aliceDomain+':'+str(alicePort)+'#users#alice.json')
assert os.path.isfile(aliceDir+'/ocap/granted/'+aliceDomain+':'+str(alicePort)+':alice:'+httpPrefix+':##'+bobDomain+':'+str(bobPort)+'#users#bob.json') assert os.path.isfile(aliceDir+'/accounts/alice@'+aliceDomain+':'+str(alicePort)+'/ocap/granted/'+httpPrefix+':##'+bobDomain+':'+str(bobPort)+'#users#bob.json')
assert 'alice@'+aliceDomain in open(bobDir+'/accounts/bob@'+bobDomain+'/followers.txt').read() assert 'alice@'+aliceDomain in open(bobDir+'/accounts/bob@'+bobDomain+'/followers.txt').read()
assert 'bob@'+bobDomain in open(aliceDir+'/accounts/alice@'+aliceDomain+'/following.txt').read() assert 'bob@'+bobDomain in open(aliceDir+'/accounts/alice@'+aliceDomain+'/following.txt').read()