diff --git a/src/httprest.py b/src/httprest.py index 08f11f9..5bc0dd3 100755 --- a/src/httprest.py +++ b/src/httprest.py @@ -434,7 +434,7 @@ class DockletHttpHandler(http.server.BaseHTTPRequestHandler): result = G_usermgr.groupList(cur_user = cur_user) self.response(200, result) elif cmds[1] == 'groupQuery': - result = G_usermgr.groupQuery(ID = form.getvalue("ID", '3'), cur_user = cur_user) + result = G_usermgr.groupQuery(name = form.getvalue("name"), cur_user = cur_user) if (result.get('success', None) == None or result.get('success', None) == "false"): self.response(301,result) else: diff --git a/src/userManager.py b/src/userManager.py index eaaaddd..c04f740 100755 --- a/src/userManager.py +++ b/src/userManager.py @@ -19,10 +19,12 @@ from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.header import Header from datetime import datetime +import json email_from_address = env.getenv('EMAIL_FROM_ADDRESS') admin_email_address = env.getenv('ADMIN_EMAIL_ADDRESS') PAM = pam.pam() +fspath = env.getenv('FS_PREFIX') if (env.getenv('EXTERNAL_LOGIN').lower() == 'true'): from plugin import external_receive @@ -152,6 +154,14 @@ class userManager: db.session.add(admin) db.session.add(primary) db.session.commit() + if not os.path.exists(fspath+"/global/group"): + groupfile = open(fspath+"/global/group",'w') + groups = [] + groups.append({'name':'root', 'cpu':'100000', 'memory':'2000', 'imageQuantity':'10', 'lifeCycle':'24'}) + groups.append({'name':'admin', 'cpu':'100000', 'memory':'2000', 'imageQuantity':'10', 'lifeCycle':'24'}) + groups.append({'name':'primary', 'cpu':'100000', 'memory':'2000', 'imageQuantity':'10', 'lifeCycle':'24'}) + groupfile.write(json.dumps(groups)) + groupfile.close() def auth_local(self, username, password): password = hashlib.sha512(password.encode('utf-8')).hexdigest() @@ -355,7 +365,15 @@ class userManager: List informantion for oneself ''' user = kwargs['cur_user'] - group = UserGroup.query.filter_by(name = user.user_group).first() + #group = UserGroup.query.filter_by(name = user.user_group).first() + groupfile = open(fspath+"/global/group",'r') + groups = json.loads(groupfile.read()) + groupfile.close() + group = None + for one_group in groups: + if one_group['name'] == user.user_group: + group = one_group + break result = { "success": 'true', "data":{ @@ -373,10 +391,10 @@ class userManager: "register_date" : "%s"%(user.register_date), "group" : user.user_group, "groupinfo": { - "cpu": group.cpu, - "memory": group.memory, - "imageQuantity": group.imageQuantity, - "lifeCycle":group.lifeCycle, + "cpu": group['cpu'], + "memory": group['memory'], + "imageQuantity": group['imageQuantity'], + "lifeCycle":group['lifeCycle'], }, }, } @@ -445,44 +463,74 @@ class userManager: Usage: list(cur_user = token_from_auth) List all groups for an administrator ''' - allgroup = UserGroup.query.all() + groupfile = open(fspath+"/global/group",'r') + groups = json.loads(groupfile.read()) + groupfile.close() + #allgroup = UserGroup.query.all() result = { "success": 'true', "data":[] } - for group in allgroup: + for group in groups: groupinfo = [ - group.id, - group.name, - group.cpu, - group.memory, - group.imageQuantity, - group.lifeCycle, + group['name'], + group['cpu'], + group['memory'], + group['imageQuantity'], + group['lifeCycle'], '', ] result["data"].append(groupinfo) + + #for group in allgroup: + # groupinfo = [ + # group.id, + # group.name, + # group.cpu, + # group.memory, + # group.imageQuantity, + # group.lifeCycle, + # '', + # ] + # result["data"].append(groupinfo) return result @administration_required def groupQuery(*args, **kwargs): ''' - Usage: groupQuery(id = XXX, cur_user = token_from_auth) + Usage: groupQuery(name = XXX, cur_user = token_from_auth) List a group for an administrator ''' - group = UserGroup.query.filter_by(id = kwargs['ID']).first() - if (group == None): + groupfile = open(fspath+"/global/group",'r') + groups = json.loads(groupfile.read()) + groupfile.close() + for group in groups: + if group['name'] == kwargs['name']: + result = { + "success":'true', + "data":{ + "name" : group['name'] , + "cpu" : group['cpu'] , + "memory" : group['memory'], + "imageQuantity" : group['imageQuantity'], + "lifeCycle" : group['lifeCycle'], + } + } + return result + else: return {"success":False, "reason":"Group does not exist"} - result = { - "success":'true', - "data":{ - "name" : group.name , - "cpu" : group.cpu , - "memory" : group.memory, - "imageQuantity" : group.imageQuantity, - "lifeCycle" : group.lifeCycle, - } - } - return result + #group = UserGroup.query.filter_by(id = kwargs['ID']).first() + #result = { + # "success":'true', + # "data":{ + # "name" : group.name , + # "cpu" : group.cpu , + # "memory" : group.memory, + # "imageQuantity" : group.imageQuantity, + # "lifeCycle" : group.lifeCycle, + # } + #} + #return result @administration_required def groupListName(*args, **kwargs): @@ -490,12 +538,15 @@ class userManager: Usage: grouplist(cur_user = token_from_auth) List all group names for an administrator ''' - groups = UserGroup.query.all() + groupfile = open(fspath+"/global/group",'r') + groups = json.loads(groupfile.read()) + groupfile.close() + #groups = UserGroup.query.all() result = { "groups": [], } for group in groups: - result["groups"].append(group.name) + result["groups"].append(group['name']) return result @administration_required @@ -503,16 +554,32 @@ class userManager: ''' Usage: groupModify(newValue = dict_from_form, cur_user = token_from_auth) ''' - group_modify = UserGroup.query.filter_by(name = kwargs['newValue'].getvalue('groupname', None)).first() - if (group_modify == None): + #group_modify = UserGroup.query.filter_by(name = kwargs['newValue'].getvalue('groupname', None)).first() + groupfile = open(fspath+"/global/group",'r') + groups = json.loads(groupfile.read()) + groupfile.close() + for group in groups: + if group['name'] == kwargs['newValue'].getvalue('groupname',None): + form = kwargs['newValue'] + group['cpu'] = form.getvalue('cpu', '') + group['memory'] = form.getvalue('memory', '') + group['imageQuantity'] = form.getvalue('image', '') + group['lifeCycle'] = form.getvalue('lifecycle', '') + groupfile = open(fspath+"/global/group",'w') + groupfile.write(json.dumps(groups)) + groupfile.close() + return {"success":'true'} + else: return {"success":'false', "reason":"UserGroup does not exist"} - form = kwargs['newValue'] - group_modify.cpu = form.getvalue('cpu', '') - group_modify.memory = form.getvalue('memory', '') - group_modify.imageQuantity = form.getvalue('image', '') - group_modify.lifeCycle = form.getvalue('lifecycle', '') - db.session.commit() - return {"success":'true'} + #if (group_modify == None): + # return {"success":'false', "reason":"UserGroup does not exist"} + #form = kwargs['newValue'] + #group_modify.cpu = form.getvalue('cpu', '') + #group_modify.memory = form.getvalue('memory', '') + #group_modify.imageQuantity = form.getvalue('image', '') + #group_modify.lifeCycle = form.getvalue('lifecycle', '') + #db.session.commit() + #return {"success":'true'} @administration_required def modify(*args, **kwargs): @@ -599,9 +666,16 @@ class userManager: name = kwargs.get('name', None) if (name == None): return {"success":'false', "reason": "Empty group name"} - group_new = UserGroup(name) - db.session.add(group_new) - db.session.commit() + #group_new = UserGroup(name) + #db.session.add(group_new) + #db.session.commit() + groupfile = open(fspath+"/global/group",'r') + groups = json.loads(groupfile.read()) + groupfile.close() + groups.append({'name':name, 'cpu':'100000', 'memory':'2000', 'imageQuantity':'10', 'lifeCycle':'24'}) + groupfile = open(fspath+"/global/group",'w') + groupfile.write(json.dumps(groups)) + groupfile.close() return {"success":'true'} def queryForDisplay(*args, **kwargs): diff --git a/web/templates/admin.html b/web/templates/admin.html index de53b83..baddae8 100644 --- a/web/templates/admin.html +++ b/web/templates/admin.html @@ -66,7 +66,6 @@
ID | Name | CPU | Memory | @@ -141,9 +140,9 @@ "columnDefs": [ { "render": function ( data, type, row ) { - return '' + 'Edit' + ''; + return '' + 'Edit' + ''; }, - "targets": 6 + "targets": 5 }, ] @@ -158,7 +157,7 @@ function setFormGroup(arg){ $.post("/group/query/", { - ID: arg, + name: arg }, function(data,status){ var result = eval("("+data+")").data; diff --git a/web/templates/user_list.html b/web/templates/user_list.html index c3f31bd..ae81585 100644 --- a/web/templates/user_list.html +++ b/web/templates/user_list.html @@ -255,19 +255,5 @@ $("#mDescription").val(result.description); }); } - function setFormGroup(arg){ - $.post("/group/query/", - { - ID: arg, - }, - function(data,status){ - var result = eval("("+data+")").data; - $("#mGroupname").val(result.name); - $("#mCpu").val(result.cpu); - $("#mMemory").val(result.memory); - $("#mImage").val(result.imageQuantity); - $("#mLifecycle").val(result.lifeCycle); - }); - } {% endblock %}
---|