def create_dept(req, db, context): name = get_required_input(req, 'name') desc = get_required_input(req, 'desc') parent_id = int(get_required_input(req, 'parent_id')) if db.query(Dept).filter(Dept.name==name, Dept.deleted==0).count() > 0: raise DeptAlreadyExistError(name) if db.query(Dept).filter(Dept.id==parent_id, Dept.deleted==0).count() == 0: raise ParentDeptNotFoundError(parent_id) dept = Dept(name=name, desc=desc, parent_id=parent_id) db.add(dept) db.commit() log.debug(dept) return obj_to_json(dept, 'dept')
def create_dept(req, db, context): name = get_required_input(req, 'name') desc = get_required_input(req, 'desc') parent_id = int(get_required_input(req, 'parent_id')) if db.query(Dept).filter(Dept.name == name, Dept.deleted == 0).count() > 0: raise DeptAlreadyExistError(name) if db.query(Dept).filter(Dept.id == parent_id, Dept.deleted == 0).count() == 0: raise ParentDeptNotFoundError(parent_id) dept = Dept(name=name, desc=desc, parent_id=parent_id) db.add(dept) db.commit() log.debug(dept) return obj_to_json(dept, 'dept')
def login(req, db): username = get_required_input(req, 'username') password = get_required_input(req, 'password') if check_login(db, username, password): user = db.query(User).filter(User.name==username).first() token = generate_token(db, user.id) user_role = db.query(UserRoleMembership).filter(UserRoleMembership.user_id==user.id).first() if user_role == None: raise RoleNotFoundError role = db.query(Role).filter(Role.id==user_role.role_id).first() if role == None: raise RoleNotFoundError return {'success': {'token': token.id, 'role': role.to_dict()}}
def create_user(req, db, context): name = get_required_input(req, 'username') password = get_required_input(req, 'password') email = get_input(req, 'email') dept_id = int(get_required_input(req, 'dept_id')) role_id = get_input(req, 'role_id') if db.query(User).filter(User.name==name, User.deleted==0).count() > 0: raise UsernameAlreadyExistError(name) if db.query(User).filter(User.email==email, User.deleted==0).count() > 0: raise EmailAlreadyExistError(email) if is_dept_admin_of(context, dept_id) == False: raise NotDeptAdminError(dept_id) if role_id == None: user_role = db.query(Role).filter(Role.name=='普通用户').first() role_id = user_role.id else: role_id = int(role_id) operator_role_id = int(context['membership'].role_id) if role_id < operator_role_id: raise RolePermissionDenyError(role_id) try: user = User(name=name, password=password, email=email, dept_id=dept_id) db.add(user) db.flush() membership = UserRoleMembership(user_id=user.id, role_id=role_id) db.add(membership) db.commit() log.debug(user) return obj_to_json(user, 'user') except Exception, e: handle_db_error(db, e)