home_project.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:pillar 作者: armadillica 项目源码 文件源码
def create_blender_sync_node(project_id, admin_group_id, user_id):
    """Creates a node for Blender Sync, with explicit write access for the admin group.

    Writes the node to the database.

    :param project_id: ID of the home project
    :type project_id: ObjectId
    :param admin_group_id: ID of the admin group of the project. This group will
        receive write access to the node.
    :type admin_group_id: ObjectId
    :param user_id: ID of the owner of the node.
    :type user_id: ObjectId

    :returns: The created node.
    :rtype: dict
    """

    log.debug('Creating sync node for project %s, user %s', project_id, user_id)

    node = {
        'project': ObjectId(project_id),
        'node_type': 'group',
        'name': SYNC_GROUP_NODE_NAME,
        'user': ObjectId(user_id),
        'description': SYNC_GROUP_NODE_DESC,
        'properties': {'status': 'published'},
        'permissions': {
            'users': [],
            'groups': [
                {'group': ObjectId(admin_group_id),
                 'methods': ['GET', 'PUT', 'POST', 'DELETE']}
            ],
            'world': [],
        }
    }

    r, _, _, status = current_app.post_internal('nodes', node)
    if status != 201:
        log.warning('Unable to create Blender Sync node for home project %s: %s',
                    project_id, r)
        raise wz_exceptions.InternalServerError('Unable to create Blender Sync node')

    node.update(r)
    return node
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号