Exemple #1
0
    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'))
Exemple #2
0
    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'))
Exemple #3
0
 def sha1(val):
     return utils.sha1(val)
Exemple #4
0
 def sha1(val):
     return utils.sha1(val) 
Exemple #5
0
    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()