コード例 #1
0
def update_provider(provider_uuid: UUID,
                    provider_update: ProviderDTO) -> ProviderDTO:
    provider = Provider.find_or_fail(provider_uuid)
    provider.name = provider_update.name
    provider.save()
    provider.session.commit()
    return to_model(provider, ProviderDTO)
コード例 #2
0
ファイル: acl.py プロジェクト: Future-Position-X/fpx-monorepo
def create_acl(user: InternalUserDTO, acl: ACLDTO) -> ACLDTO:
    if acl.collection_uuid:
        collection = Collection.find_writeable_or_fail(user,
                                                       acl.collection_uuid)
        if collection.provider_uuid != user.provider_uuid:
            raise PermissionError

    if acl.item_uuid:
        item = Item.find_writeable_or_fail(user, acl.item_uuid)
        if item.collection.provider_uuid != user.provider_uuid:
            raise PermissionError

    if acl.granted_provider_uuid:
        Provider.find_or_fail(acl.granted_provider_uuid)

    if acl.granted_user_uuid:
        User.find_or_fail(acl.granted_user_uuid)

    acl.provider_uuid = user.provider_uuid
    acl = ACL(**acl.to_dict())
    acl.save()
    acl.session.commit()
    return to_model(acl, ACLDTO)
コード例 #3
0
def get_provider(provider_uuid: UUID) -> ProviderDTO:
    provider = Provider.find_or_fail(provider_uuid)
    return to_model(provider, ProviderDTO)