def switch(self, space_id): session['space_id'] = space_id # TODO current_user.last_space = space_id current_user.save() UserModel.fresh_session() return self.render_json()
def menu(self): role = SUPER if current_user.role == SUPER else ROLE_ACCESS[session['space_info']['role']] user = UserModel(id=current_user.id).item() menu = MenuModel().menu(role=role) space = { 'current': '', 'available': '', } UserModel.fresh_session() # TODO # 超管不需要展示空间列表 if current_user.role != SUPER: space = { 'current': session['space_info'], 'available': session['space_list'], } data = { 'user': user, 'menu': menu, 'space': space, } return self.render_json(data=data)
def menu(self): role = SUPER if current_user.role == SUPER else ROLE_ACCESS[ session['space_info']['role']] user = UserModel(id=current_user.id).item() menu = MenuModel().menu(role=role) space = { 'current': '', 'available': '', } UserModel.fresh_session() # TODO # 超管不需要展示空间列表 if current_user.role != SUPER: space = { 'current': session['space_info'], 'available': session['space_list'], } data = { 'user': user, 'menu': menu, 'space': space, } return self.render_json(data=data)
def login(self): """ user login /passport/ :return: """ form = LoginForm(request.form, csrf=False) if form.validate_on_submit(): if current_app.config['LDAP']: ldap = LDAP(current_app) if form.password.data == '': userbind = None else: userbind = ldap.bind_user(form.email.data, form.password.data) else: ldap = current_app.config['LDAP'] userbind = None if form.email.data in current_app.config['LDAP_PRIVILEGE']: ldap = False if ldap: if userbind: user = UserModel.query.filter_by( email=form.email.data).first() if user is not None: login_user(user) user.fresh_session() return self.render_json(data=current_user.to_json()) else: # ldap验证成功,取信息入库 ldap_user = ldap.get_object_details(form.email.data) user_info = { 'username': ldap_user['displayName'][0].decode(), 'password': generate_password_hash(form.password.data), 'email': form.email.data, 'role': '', 'last_space': 1, 'created_at': datetime.now(), 'updated_at': datetime.now(), } user = UserModel().add(user_info) member_info = { 'user_id': user.id, 'source_id': 1, 'source_type': 'group', 'access_level': 'DEVELOPER', 'status': MemberModel.status_available } m = MemberModel(**member_info) db.session.add(m) db.session.commit() login_user(user) user.fresh_session() return self.render_json(data=current_user.to_json()) else: return self.render_json(code=Code.error_pwd, data=form.errors) else: user = UserModel.query.filter_by(email=form.email.data).first() if user is not None and user.verify_password( form.password.data): login_user(user) user.fresh_session() return self.render_json(data=current_user.to_json()) return self.render_json(code=Code.error_pwd, data=form.errors)