Ejemplo n.º 1
0
    def _move_node_to_node(node, parent_node):  # pylint: disable=unused-argument
        '''
        更新下属所有子孙节点及其成员
        '''
        nodes = list(node.downstream)
        update_nodes_cache.delay([node.node_uid for node in nodes])

        user_uids = [item['user__username'] for item in \
            node.member_cls.valid_objects.filter(owner__in=nodes).values('user__username')]
        update_users_cache.delay(user_uids)
Ejemplo n.º 2
0
 def update(self, request, *args, **kwargs):  # pylint: disable=unused-argument
     user = self.get_object()
     node_uids = request.data.get('node_uids', [])
     subject = request.data.get('subject', [])
     group_uids = []
     dept_uids = []
     for node_uid in node_uids:
         if node_uid.startswith(Group.NODE_PREFIX):
             group_uids.append(node_uid.replace(Group.NODE_PREFIX, '', 1))
         elif node_uid.startswith(Dept.NODE_PREFIX):
             dept_uids.append(node_uid.replace(Dept.NODE_PREFIX, '', 1))
     with transaction.atomic():
         update_user_nodes(
             user,
             nodes=[],
             uids=group_uids,
             node_type='group',
             action_subject=subject,
         )
         update_user_nodes(user,
                           nodes=[],
                           uids=dept_uids,
                           node_type='dept',
                           action_subject=subject)
         # 可重复读事务提交后,更新缓存数据至最新版本
         transaction.on_commit(
             lambda: update_users_cache.delay([user.username]))
     return self.get(request)
Ejemplo n.º 3
0
 def add_user_to_depts(self, user, depts):
     '''
     更新用户缓存
     '''
     update_users_cache.delay([user.username])
Ejemplo n.º 4
0
 def add_users_to_dept(self, users, dept):
     '''
     更新用户缓存
     '''
     update_users_cache.delay([user.username for user in users])
Ejemplo n.º 5
0
 def delete_users_from_group(self, users, group):
     '''
     更新用户缓存
     '''
     update_users_cache.delay([user.username for user in users])
Ejemplo n.º 6
0
 def delete_user_from_groups(self, user, groups):
     '''
     更新用户缓存
     '''
     update_users_cache.delay([user.username])
Ejemplo n.º 7
0
 def add_user_to_groups(self, user, groups):
     '''
     更新用户缓存
     '''
     update_users_cache.delay([user.username])
Ejemplo n.º 8
0
 def add_users_to_group(self, users, group):
     '''
     更新用户缓存
     '''
     update_users_cache.delay([user.username for user in users])
Ejemplo n.º 9
0
 def delete_user_from_depts(self, user, depts):
     '''
     更新用户缓存
     '''
     update_users_cache.delay([user.username])
Ejemplo n.º 10
0
 def delete_users_from_dept(self, users, dept):
     '''
     更新用户缓存
     '''
     update_users_cache.delay([user.username for user in users])