async def register(app, uid, password, name, group): async with app['db'].acquire() as conn: # 检查用户是否存在 cuser = await conn.execute(User.select().where(User.c.uid == uid)) ruser = await cuser.fetchone() if ruser: return web.json_response({ 'result': False, 'message': '用户%s已存在' % uid }) else: # 检查用户组是否存在 cgroup = await conn.execute( Group.select().where(Group.c.gid == group)) rgroup = await cgroup.fetchone() if rgroup is None: return web.json_response({ 'result': False, 'message': '用户组%s不存在' % group }) await conn.execute(User.insert(), uid=uid, password=password, group=group, name=name) return web.json_response({ 'result': True, 'message': '用户%s(%s)注册成功' % (uid, name) })
def get_all_events(driver, debug=True): print("\nScanning for new events:") while True: group_count = Group.select().where( Group.fetched_events == False).count() if group_count == 0: break group = Group.get(Group.fetched_events == False) print("Processing {} groups. Fetching events.".format(group_count), flush=True) group_events = get_group_events(driver, group.id) for event_id, data in group_events.items(): event = Event.get_or_create(id=event_id)[0] event.name = data["name"] event.location = data["location"] event.image = data["image"] event.save() print("Found {} events".format(len(group_events)), flush=True) group.fetched_events = True group.last_fetched = datetime.datetime.utcnow() group.events_found = len(group_events) group.save() if debug and len(group_events) > 0: break
async def login(app, uid, password): async with app['db'].acquire() as conn: cuser = await conn.execute(User.select().where(User.c.uid == uid)) ruser = await cuser.fetchone() if ruser is None: return web.json_response({ 'result': False, 'message': '用户%s不存在' % uid }) if ruser.password != password: return web.json_response({'result': False, 'message': '密码错误'}) cgroup = await conn.execute( Group.select().where(Group.c.gid == ruser.group)) rgroup = await cgroup.fetchone() if rgroup is None: return web.json_response({ 'result': False, 'message': '用户组%s不存在' % ruser.group }) token = app['token'].genToken(uid) data = { 'result': True, 'role': rgroup.role, 'token': token, 'message': 'login success' } return web.json_response(data)
def get_groups(): """ 获取32强组 """ page = int(request.args.get('page', 1)) pre_page = int(request.args.get('pre_page', 4)) groups = Group.select().paginate(page, pre_page) data = [g.get_dict() for g in groups] return json_data(data)
async def groups(app): async with app['db'].acquire() as conn: cursor = await conn.execute( Group.select().where(Group.c.role == 'user')) row = await cursor.fetchall() data = [] if row: data = [dict(g) for g in row] return web.json_response(data=data)
async def auts(app): async with app['db'].acquire() as conn: cgroup = await conn.execute( Group.select().where(Group.c.role == 'user')) rgroup = await cgroup.fetchall() data = [] if rgroup: for group in rgroup: data.append({'autid': group.gid, 'name': group.name}) join = sa.join(User, Group, User.c.group == Group.c.gid) query = (sa.select( [User.c.uid, User.c.name]).select_from(join).where(Group.c.role != 'admin')) cuser = await conn.execute(query) ruser = await cuser.fetchall() if ruser: for user in ruser: data.append({'autid': user.uid, 'name': user.name}) return web.json_response(data=data)
async def add(app, gid, name): async with app['db'].acquire() as conn: cursor = await conn.execute(Group.select().where(Group.c.gid == gid)) row = await cursor.fetchone() if row: return web.json_response({ 'result': False, 'message': '组%s已存在' % gid }) else: cursor = await conn.execute(Group.insert().values(gid=gid, name=name, role='user')) if cursor.rowcount == 1: return web.json_response({ 'result': True, 'message': '新增组%s成功' % gid }) else: return web.json_response({ 'result': False, 'message': '新增组%s失败' % gid })
def save(cls, user, **kwargs): g.current_user = user if user else None admin_group = Group.select().where(Group.name == 'admin').get() g.is_admin = admin_group.is_member(g.current_user)