Example #1
0
    def reg_usr(self, user_info):
        # 注册用户
        user = User()
        user.name = user_info['display_name']
        user.email = user_info['email']
        user.reg_time = Date.time()
        user.save()

        # 绑定角色
        user_role = UserRole()
        user_role.user = user
        user_role.role = Role.get(Role.code == 'user')
        user_role.save()

        # 绑定 oauth
        user_oauth = UserOAuth()
        user_oauth.user = user
        user_oauth.oauth_id = self.uid
        user_oauth.set_token(self.access_token)
        user_oauth.save()

        # 为用户进行登陆
        user.login(self)

        # 添加同步任务
        self.add_task(route.url_for('task.SyncPath', user.id, 0), 99)

        self.redirect(route.url_for('wiki.Index'))
Example #2
0
    def reg_usr(self, user_info):
        # 注册用户
        user = User()
        user.name  = user_info['display_name']
        user.email = user_info['email']
        user.reg_time = Date.time()
        user.save()

        # 绑定角色
        user_role = UserRole()
        user_role.user = user
        user_role.role = Role.get(Role.code == 'user')
        user_role.save()

        # 绑定 oauth
        user_oauth = UserOAuth()
        user_oauth.user = user
        user_oauth.oauth_id = self.uid
        user_oauth.set_token(self.access_token)
        user_oauth.save()

        # 为用户进行登陆
        user.login(self)

        # 添加同步任务
        self.add_task(
            route.url_for('task.SyncPath', user.id, 0),
            99
        )

        self.redirect(route.url_for('wiki.Index'))
Example #3
0
    def add(metadata, parent_id):
        """添加事务"""
        parent_id = int(parent_id)

        # 删除大于1天的旧事务
        TaskAffairs.delete()\
                   .where(
                        TaskAffairs.time <= (Date.time() - 3600 * 24) 
                    )\
                    .where(
                        TaskAffairs.metadata == metadata
                    )\
                    .execute()

        # 检验上级事务
        parent_affair = False
        if 0 != parent_id:
            parent_affair = TaskAffairs.select()\
                                       .where(TaskAffairs.id == parent_id)

            if 0 == parent_affair.count():
                parent_id = 0
            else:
                parent_affair = parent_affair.get()
                if parent_affair.metadata.id != metadata.root_id:
                    parent_id = 0

        # 创建事务
        task_affair = TaskAffairs()
        task_affair.metadata = metadata
        task_affair.time = Date.time()
        task_affair.is_dir = metadata.is_dir
        task_affair.old_hash_key = metadata.hash_key

        if parent_affair and 0 != parent_id:
            task_affair.parent = parent_id
            task_affair.parents = "%s%s," % (parent_affair.parents, parent_id)
            
        task_affair.save()
        return task_affair
Example #4
0
    def add(metadata, parent_id):
        """添加事务"""
        parent_id = int(parent_id)

        # 删除大于1天的旧事务
        TaskAffairs.delete()\
                   .where(
                        TaskAffairs.time <= (Date.time() - 3600 * 24)
                    )\
                    .where(
                        TaskAffairs.metadata == metadata
                    )\
                    .execute()

        # 检验上级事务
        parent_affair = False
        if 0 != parent_id:
            parent_affair = TaskAffairs.select()\
                                       .where(TaskAffairs.id == parent_id)

            if 0 == parent_affair.count():
                parent_id = 0
            else:
                parent_affair = parent_affair.get()
                if parent_affair.metadata.id != metadata.root_id:
                    parent_id = 0

        # 创建事务
        task_affair = TaskAffairs()
        task_affair.metadata = metadata
        task_affair.time = Date.time()
        task_affair.is_dir = metadata.is_dir
        task_affair.old_hash_key = metadata.hash_key

        if parent_affair and 0 != parent_id:
            task_affair.parent = parent_id
            task_affair.parents = "%s%s," % (parent_affair.parents, parent_id)

        task_affair.save()
        return task_affair
Example #5
0
def uninstall(plugin_name):
  
    register = import_object(plugin_name.strip() + '.register')
    
    name = register._handler.__module__ + \
           '.' + register._handler.__name__

    if models.Plugins.filter(models.Plugins.name == name).count() == 1 :
        plugin = import_object(name)()
        plugin.uninstall()

        plugin_ar = models.Plugins.get(models.Plugins.name == name)

        for v in Json.decode(plugin_ar.ui_modules):
            ui_name = str(v.split('.').pop())
            if ui_name in _application.ui_modules:
                del _application.ui_modules[ui_name] 

        # 卸载路由
        routes = []

        for v in Json.decode(plugin_ar.handlers):
            ctr = import_object(v)
            if hasattr(ctr,'_menu'):
                from xcat.web import menu
                menu.remove(getattr(ctr,'_menu'))
            routes.append(ctr._route)

        if len(routes) > 0:
            # 重新注册路由
            from xcat.web import Application
            cache.client.set(Application._sync_key,Date.time())

        models.Plugins.delete().where(models.Plugins.name==name).execute()

        reset()
Example #6
0
            )

        pl = models.Plugins()
        pl.name        = name
        pl.bind        = Json.encode(register._targets)
        pl.handlers    = Json.encode(handlers)
        pl.ui_modules  = Json.encode(ui_modules)

        if plugin.get_form() :
            pl.config = Json.encode(plugin.get_form().get_default_values())
        pl.save()

        # 安装路由
        if len(plugin._handlers) > 0 :
            from xcat.web import Application
            cache.client.set(Application._sync_key,Date.time())

        reset()
        
class Register(object):
    '''
    插件注册表
    '''
    
    def __init__(self):
        self._handler = False
        self._targets = {}
        self._events  = (
            'on_init' , 
            'before_execute' , 
            'before_render' ,