コード例 #1
0
def createEmp(cur, data):
	try:
		admin = data["admin"]
		adminPassword = data["passwd"]
		empData = data["data"]
		empPassword = data["newpasswd"]
		empSupervisor = data["emp1"]
		empId = data["emp"]
		if not checkPassword(cur, admin, adminPassword):
			createErrorStatus(debug='Wrong admin id or password')
			return
		supervisorPath = guq.getRootPath(cur, empSupervisor)
		if admin not in supervisorPath:
			createErrorStatus(debug='{} is not allowed to add {} suborinate'.format(admin, empSupervisor))
			return
		if checkIfEmpExists(cur, empId):
			createErrorStatus(debug='{} already exists'.format(empId))
			return
		query = "INSERT INTO employee VALUES({}, crypt('{}', gen_salt('bf')), '{}', {})".format(empId, empPassword, empData, empSupervisor)
		cur.execute(query)
		rootPathQuery = "INSERT INTO rootPath VALUES({}, Array{})".format(empId, supervisorPath+[empId])
		cur.execute(rootPathQuery)
		subordinateQuery = "INSERT INTO Subordinates VALUES({0}, Array[{0}])".format(empId)
		cur.execute(subordinateQuery)
		guq.updateSubordinates(cur, empSupervisor, empId)
		createStatus()
		
	except:
		createErrorStatus(debug='Error while creating user')
コード例 #2
0
def getAncestors(cur, data):
	try:
		admin = data["admin"]
		adminPassword = data["passwd"]
		empId = data["emp"]		
		if not checkPassword(cur, admin, adminPassword):
			createErrorStatus(debug='Wrong admin id or password')
			return
		rootPath = guq.getRootPath(cur, empId)[:-1]
		createStatus(data=rootPath)
	except:
		createErrorStatus(debug='Could not get ancestors of user')
コード例 #3
0
def getData(cur, data):
	try:
		admin = data["admin"]
		adminPassword = data["passwd"]
		empId = data["emp"]		
		if not checkPassword(cur, admin, adminPassword):
			createErrorStatus(debug='Wrong admin id or password')
			return
		empRootPath = guq.getRootPath(cur, empId)
		if admin not in empRootPath:
			createErrorStatus(debug='{} is not allowed to get data of {}'.format(admin, empId))
			return
		data = guq.getEmpData(cur, empId)
		createStatus(data=data)
	except:
		createErrorStatus(debug='Could not get data of user')
コード例 #4
0
def getAncestor(cur, data):
	try:
		admin = data["admin"]
		adminPassword = data["passwd"]
		empId = data["emp1"]
		supervisorId = data["emp2"]		
		if not checkPassword(cur, admin, adminPassword):
			createErrorStatus(debug='Wrong admin id or password')
			return
		if not checkIfEmpExists(cur, supervisorId):
			createErrorStatus(debug='{} does not exist'.format(supervisorId))
			return
		rootPath = guq.getRootPath(cur, empId)[:-1]
		createStatus(data=supervisorId in rootPath)
	except:
		createErrorStatus(debug='Could not check ancestor')
コード例 #5
0
def removeEmp(cur, data):
	try:
		admin = data["admin"]
		adminPassword = data["passwd"]
		empId = data["emp"]		
		if not checkPassword(cur, admin, adminPassword):
			createErrorStatus(debug='Wrong admin id or password')
			return
		empRootPath = guq.getRootPath(cur, empId)[:-1]
		if len(empRootPath) == 0 or admin not in empRootPath:
			createErrorStatus(debug='{} is not allowed to remove {}'.format(admin, empId))
			return
		parentId = guq.getParentId(cur, empId)
		guq.removeEmpFromDB(cur, empId)
		guq.deleteFromSubordinates(cur, parentId, empId)
		createStatus()
	except:
		createErrorStatus(debug='Could not remove user')