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')
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')
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')
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')
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')