async def get(self, **kw): session = await get_session(self.request) if session.get('user'): del session['user'] redirect(self.request, 'login') else: raise web.HTTPForbidden(body=b'Forbidden')
async def form_valid(self, form): password = form.password.data email = form.email.data user = await User.query.where(User.email == email).gino.first() if not user or not verify_password(password, user.password): return {'form': form, 'error_msg': 'Email or password is incorect'} login_user(self.request, user) redirect(self.request, 'create_room')
async def post(self, *args, **kwargs): data = await self.request.post() room_id = data.get('room', False) if room_id: session = await get_session(self.request, ) set_session(session=session, room_id=room_id, ) redirect(self.request, 'main') redirect(self.request, 'admin')
async def get(self): session = await get_session(self.request) if session.get('user') and session.get('room_id'): message = MessageMySQL(user_id=session['user'], room_id=session['room_id']) return { 'messages': await message.get_messages(room_id=int(session.get('room_id'))) } else: redirect(self.request, 'login')
async def post(self, *args, **kwargs): data = await self.request.post() name = data.get('name', False) if name: room = RoomMySQL() await room.create_room(name=name) dict_response = {'content_type': 'application/json', 'status': 200, 'charset': 'utf-8', } dict_response.update({'text': json.dumps({'result': 'Ok', 'redirect': '/admin/', }, ), }, ) return web.Response(**dict_response) room_id = data.get('room', False) if room_id: session = await get_session(self.request, ) set_session(session=session, room_id=room_id, ) redirect(self.request, 'main') redirect(self.request, 'admin')
async def get(self, *args, **kwargs): session = await get_session(self.request) if session.get('user'): user = UserMySQL(id=session['user'], ) user = await user.get_user_by_id() if isinstance(user, bool): del session['user'] redirect(self.request, 'login') if user.is_admin: redirect(self.request, 'admin') else: redirect(self.request, 'rooms') else: redirect(self.request, 'login')
async def post(self): room_name = await self.is_valid() if not room_name: redirect(self.request, 'create_room') if await Room.query.where(Room.name == room_name).gino.first(): add_message(self.request, 'danger', f'Room with {room_name} already exists.') redirect(self.request, 'create_room') room = await Room.create(name=room_name, created_date=datetime.now()) redirect(self.request, 'room', slug=room.name)
async def form_valid(self, form): username = form.username.data email = form.email.data password = form.password.data password_repeat = form.password_repeat.data user_match = await User.query.where(User.username == username ).gino.first() email_match = await User.query.where(User.email == email).gino.first() if user_match or email_match: add_message(self.request, 'danger', f'Username or email already taken') redirect(self.request, 'register') if password != password_repeat: add_message(self.request, 'warning', f'Password confirmation does not match') redirect(self.request, 'register') password = encrypt_password(password) await User.create(username=username, email=email, password=password) redirect(self.request, 'login')
async def get(self, *args, **kwargs): session = await get_session(self.request) if session.get('user'): redirect(self.request, 'main') return {'content': 'Please enter login or email'}
async def get(self): logout(self.request) redirect(self.request, 'login')
async def get(self, **kwargs): self.request.session.pop('user') redirect(self.request, 'login')
async def wrapper(self, *args, **kwargs): if not self.request.user: redirect(self.request, 'login') return await func(self, *args, **kwargs)
async def wrapper(self, *args, **kwargs): if self.request.user: redirect(self.request, 'create_room') return await func(self, *args, **kwargs)
async def form_valid(self, form): password = encrypt_password(form.password.data) await User.create(username=form.username.data, email=form.email.data, password=password) redirect(self.request, 'login')
async def get(self, **kw): session = await get_session(self.request) if session.get('user'): redirect(self.request, 'main') return {'content': 'Please enter your data'}
async def wrapped(self, *args, **kwargs): if self.request.user is None: redirect(self.request, 'login') return await func(self, *args, **kwargs)
async def login_user(self, user_id): """ Put user to session and redirect to Index """ self.request.session['user'] = str(user_id) self.request.session['time'] = time() redirect(self.request, 'main')