def post(self): if not self.form.validate(): self.render('admin/login.html', form=self.form) return # 防止穷举 yield gen.Task(IOLoop.instance().add_timeout, time.time() + 1.5) post = self.form.data user = User.select().where(User.email == post['email'])\ .where(User.password == sha1(post['password'])) if 0 == (yield gen.Task(user.count)): self.form.email.errors.append('Email 或 密码错误') self.render('admin/login.html', form=self.form) return user = yield gen.Task(user.get) role_codes, role_ids = yield gen.Task(user.get_roles) # 写入 session self.set_current_user({ 'id': user.id, 'gravatar': user.gravatar_url(80), 'name': user.name, 'email': user.email, 'sex': user.sex, 'roles': role_codes }) self.redirect(route.url_for('admin.Index'))
def post(self): if not self.form.validate(): self.render('admin/login.html', form=self.form ) return # 防止穷举 yield gen.Task(IOLoop.instance().add_timeout, time.time() + 1.5) post = self.form.data user = User.select().where(User.email == post['email'])\ .where(User.password == sha1(post['password'])) if 0 == (yield gen.Task(user.count)): self.form.email.errors.append('Email 或 密码错误') self.render('admin/login.html', form=self.form ) return user = yield gen.Task(user.get) role_codes, role_ids = yield gen.Task(user.get_roles) # 写入 session self.set_current_user({ 'id': user.id, 'gravatar': user.gravatar_url(80), 'name': user.name, 'email': user.email, 'sex': user.sex, 'roles': role_codes }) self.redirect(route.url_for('admin.Index'))
def sha1(val): return utils.sha1(val)
def get(self): base = ('User', 'Role', 'UserRole') cms_base = ('Table', 'FieldUi', 'TableField', 'Category') yield gen.Task(self.creat_tables, base, models) yield gen.Task(self.creat_tables, cms_base, cms) # 创建角色 role_count = yield gen.Task( models.Role.select().count ) if 0 == role_count: # 初始化角色 admin_role = models.Role() admin_role.code = 'admin' admin_role.name = '管理员' yield gen.Task(admin_role.save) user_role = models.Role() user_role.code = 'user' user_role.name = '会员' yield gen.Task(user_role.save) # 创建管理员 settings = self.settings user = models.User() user.name = settings['admin_name'] user.email = settings['admin_email'] user.password = sha1(settings['admin_passwd']) user.register_date = time.time() yield gen.Task(user.save) user_role = models.UserRole() user_role.user = user user_role.role = admin_role yield gen.Task(user_role.save) # 创建 field ui ui_count = yield gen.Task(cms.FieldUi.select().count) if 0 == ui_count: ui_list = [ {'name': 'input', 'desc': '单行文本'}, {'name': 'radio', 'desc': '单选'}, {'name': 'checkbox', 'desc': '多选'}, {'name': 'select', 'desc': '下拉'}, {'name': 'textarea', 'desc': '多行文本'}, {'name': 'textarea', 'desc': '富文本编辑器', 'plugin': 'editor'}, {'name': 'input', 'desc': '隐藏值', 'plugin': 'hidden'}, {'name': 'input', 'desc': '图片上传', 'plugin': 'image_upload'}, {'name': 'textarea', 'desc': '组图上传', 'plugin': 'images_upload'}, {'name': 'input', 'desc': '文件上传', 'plugin': 'file_upload'}, ] for v in ui_list: field_ui = cms.FieldUi(**v) yield gen.Task(field_ui.save) # 创建 page 模型 page_table = yield gen.Task(self.creat_model, 'page', '单页面') # 创建 资讯 模型 news_table = yield gen.Task(self.creat_model, 'news', '资讯') # 创建默认分类 category_count = yield gen.Task(cms.Category.select().count) if 0 == category_count: # 创建 单页面 分类 page_category = cms.Category() page_category.title = 'page' page_category.desc = '单页面' page_category.table = page_table yield gen.Task(page_category.save) # 创建 资讯 分类 news_category = cms.Category() news_category.title = 'news' news_category.desc = '资讯' news_category.table = news_table yield gen.Task(news_category.save) self.write('ok') self.finish()