def select_nodenet_from_console(nodenet_uid): user_id, permissions, token = get_request_data() result, uid = runtime.load_nodenet(nodenet_uid) if not result: return template("error", msg="Could not select nodenet") response.set_cookie("selected_nodenet", nodenet_uid + "/", path="/") redirect("/")
def delete_nodenet_from_console(nodenet_uid): user_id, permissions, token = get_request_data() if "manage nodenets" in permissions: runtime.delete_nodenet(nodenet_uid) response.set_cookie('notification', '{"msg":"Nodenet deleted", "status":"success"}', path='/') redirect('/nodenet_mgt') return template("error", msg="Insufficient rights to access nodenet console")
def delete_user(userid): user_id, permissions, token = get_request_data() if "manage users" in permissions: if userid in usermanager.users: usermanager.delete_user(userid) redirect("/user_mgt") return template("error", msg="Insufficient rights to access user console")
def create_user_submit(): params = dict((key, request.forms.getunicode(key)) for key in request.forms) user_id, permissions, token = get_request_data() userid = params['userid'] password = params['password'] role = params.get('permissions') (success, result) = micropsi_core.tools.check_for_url_proof_id(userid, existing_ids=usermanager.users.keys()) if success: # check if permissions in form are consistent with internal permissions if ((role == "Administrator" and ("create admin" in permissions or not usermanager.users)) or (role == "Full" and "create full" in permissions) or (role == "Restricted" and "create restricted" in permissions)): if usermanager.create_user(userid, password, role, uid=micropsi_core.tools.generate_uid()): if request.is_xhr: return dict(status="OK", redirect='/user_mgt') else: redirect('/user_mgt') else: return dict(status="error", msg="User creation failed for an obscure internal reason.") else: return dict(status="error", msg="Permission inconsistency during user creation.") else: # something wrong with the user id, retry return template("create_user", version=VERSION, user_id=user_id, title="Create a user for the %s server" % APPTITLE, permissions=permissions, userid_error=result) return dict(status="error", msg="Insufficient rights to access user console")
def set_permissions(user_key, role): user_id, permissions, token = get_request_data() if "manage users" in permissions: if user_key in usermanager.users and role in usermanagement.USER_ROLES: usermanager.set_user_role(user_key, role) redirect('/user_mgt') return template("error", msg="Insufficient rights to access user console")
def save_all_nodenets(): user_id, permissions, token = get_request_data() if "manage nodenets" in permissions: for uid in runtime.nodenets: runtime.save_nodenet(uid) response.set_cookie('notification', '{"msg":"All nodenets saved", "status":"success"}', path='/') redirect('/nodenet_mgt') return template("error", msg="Insufficient rights to access nodenet console")
def login_as_user(userid): user_id, permissions, token = get_request_data() if "manage users" in permissions: if userid in usermanager.users: if usermanager.switch_user_for_session_token(userid, token): # redirect to start page redirect("/") return template("error", msg="Could not log in as new user") return template("error", msg="User does not exist") return template("error", msg="Insufficient rights to access user console")
def logout(): user_id, permissions, token = get_request_data() usermanager.end_session(token) response.delete_cookie("token") redirect("/")