mirror of https://gitlab.com/bashrc2/epicyon
Registrations status in config file
parent
cd01a1f761
commit
ebcdbf74b4
44
epicyon.py
44
epicyon.py
|
@ -255,6 +255,13 @@ parser.add_argument('--location', dest='location', type=str,default=None, \
|
||||||
help='Location/City of item being shared')
|
help='Location/City of item being shared')
|
||||||
parser.add_argument('--duration', dest='duration', type=str,default=None, \
|
parser.add_argument('--duration', dest='duration', type=str,default=None, \
|
||||||
help='Duration for which to share an item')
|
help='Duration for which to share an item')
|
||||||
|
parser.add_argument('--registration', dest='registration', type=str,default=None, \
|
||||||
|
help='Whether new registrations are open or closed')
|
||||||
|
parser.add_argument('--maxregistrations', dest='maxRegistrations', type=int,default=None, \
|
||||||
|
help='The maximum number of new registrations')
|
||||||
|
parser.add_argument("--resetregistrations", type=str2bool, nargs='?', \
|
||||||
|
const=True, default=False, \
|
||||||
|
help="Reset the number of remaining registrations")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
debug=False
|
debug=False
|
||||||
|
@ -309,7 +316,44 @@ if baseDir.endswith('/'):
|
||||||
if args.domain:
|
if args.domain:
|
||||||
domain=args.domain
|
domain=args.domain
|
||||||
setConfigParam(baseDir,'domain',domain)
|
setConfigParam(baseDir,'domain',domain)
|
||||||
|
|
||||||
|
# maximum number of new registrations
|
||||||
|
if not args.maxRegistrations:
|
||||||
|
maxRegistrations=getConfigParam(baseDir,'maxRegistrations')
|
||||||
|
if not maxRegistrations:
|
||||||
|
maxRegistrations=10
|
||||||
|
setConfigParam(baseDir,'maxRegistrations',str(maxRegistrations))
|
||||||
|
else:
|
||||||
|
maxRegistrations=int(maxRegistrations)
|
||||||
|
else:
|
||||||
|
maxRegistrations=args.maxRegistrations
|
||||||
|
setConfigParam(baseDir,'maxRegistrations',str(maxRegistrations))
|
||||||
|
|
||||||
|
# if this is the initial run then allow new registrations
|
||||||
|
if not getConfigParam(baseDir,'registration'):
|
||||||
|
setConfigParam(baseDir,'registration','open')
|
||||||
|
setConfigParam(baseDir,'maxRegistrations',str(maxRegistrations))
|
||||||
|
setConfigParam(baseDir,'registrationsRemaining',str(maxRegistrations))
|
||||||
|
|
||||||
|
if args.resetregistrations:
|
||||||
|
setConfigParam(baseDir,'registrationsRemaining',str(maxRegistrations))
|
||||||
|
print('Number of new registrations reset to '+str(maxRegistrations))
|
||||||
|
|
||||||
|
# whether new registrations are open or closed
|
||||||
|
if args.registration:
|
||||||
|
if args.registration.lower()=='open':
|
||||||
|
registration=getConfigParam(baseDir,'registration')
|
||||||
|
if not registration:
|
||||||
|
setConfigParam(baseDir,'registrationsRemaining',str(maxRegistrations))
|
||||||
|
else:
|
||||||
|
if registration!='open':
|
||||||
|
setConfigParam(baseDir,'registrationsRemaining',str(maxRegistrations))
|
||||||
|
setConfigParam(baseDir,'registration','open')
|
||||||
|
print('New registrations open')
|
||||||
|
else:
|
||||||
|
setConfigParam(baseDir,'registration','closed')
|
||||||
|
print('New registrations closed')
|
||||||
|
|
||||||
# unique ID for the instance
|
# unique ID for the instance
|
||||||
instanceId=getConfigParam(baseDir,'instanceId')
|
instanceId=getConfigParam(baseDir,'instanceId')
|
||||||
if not instanceId:
|
if not instanceId:
|
||||||
|
|
|
@ -23,6 +23,8 @@ from auth import storeBasicCredentials
|
||||||
from roles import setRole
|
from roles import setRole
|
||||||
from media import removeMetaData
|
from media import removeMetaData
|
||||||
from utils import validNickname
|
from utils import validNickname
|
||||||
|
from config import setConfigParam
|
||||||
|
from config import getConfigParam
|
||||||
|
|
||||||
def generateRSAKey() -> (str,str):
|
def generateRSAKey() -> (str,str):
|
||||||
key = RSA.generate(2048)
|
key = RSA.generate(2048)
|
||||||
|
@ -232,6 +234,11 @@ def createPerson(baseDir: str,nickname: str,domain: str,port: int, \
|
||||||
"""
|
"""
|
||||||
if not validNickname(nickname):
|
if not validNickname(nickname):
|
||||||
return None,None,None,None
|
return None,None,None,None
|
||||||
|
|
||||||
|
registrationsRemaining=int(getConfigParam(baseDir,'registrationsRemaining'))
|
||||||
|
if registrationsRemaining<=0:
|
||||||
|
return None,None,None,None
|
||||||
|
|
||||||
privateKeyPem,publicKeyPem,newPerson,webfingerEndpoint = \
|
privateKeyPem,publicKeyPem,newPerson,webfingerEndpoint = \
|
||||||
createPersonBase(baseDir,nickname,domain,port,httpPrefix,saveToFile,password)
|
createPersonBase(baseDir,nickname,domain,port,httpPrefix,saveToFile,password)
|
||||||
if noOfAccounts(baseDir)==1:
|
if noOfAccounts(baseDir)==1:
|
||||||
|
@ -249,6 +256,8 @@ def createPerson(baseDir: str,nickname: str,domain: str,port: int, \
|
||||||
copyfile(baseDir+'/img/image.png',baseDir+'/accounts/'+nickname+'@'+domain+'/image.png')
|
copyfile(baseDir+'/img/image.png',baseDir+'/accounts/'+nickname+'@'+domain+'/image.png')
|
||||||
if os.path.isfile(baseDir+'/img/banner.png'):
|
if os.path.isfile(baseDir+'/img/banner.png'):
|
||||||
copyfile(baseDir+'/img/banner.png',baseDir+'/accounts/'+nickname+'@'+domain+'/banner.png')
|
copyfile(baseDir+'/img/banner.png',baseDir+'/accounts/'+nickname+'@'+domain+'/banner.png')
|
||||||
|
registrationsRemaining-=1
|
||||||
|
setConfigParam(baseDir,'registrationsRemaining',str(registrationsRemaining))
|
||||||
return privateKeyPem,publicKeyPem,newPerson,webfingerEndpoint
|
return privateKeyPem,publicKeyPem,newPerson,webfingerEndpoint
|
||||||
|
|
||||||
def createSharedInbox(baseDir: str,nickname: str,domain: str,port: int, \
|
def createSharedInbox(baseDir: str,nickname: str,domain: str,port: int, \
|
||||||
|
|
Loading…
Reference in New Issue