Beispiel #1
0
 def mutate(self, info, **kwargs):
     if not info.context.user:
         raise GraphQLError(json.dumps({"error": "Not authorized"}))
     sample = readable_samples(Sample.objects.filter(id=kwargs["id"]),
                               info.context.user).first()
     if not sample: raise GraphQLError('{"sample": ["Does not exist"]}')
     collection = readable_collections(
         Collection.objects.filter(id=kwargs.get("collection")),
         info.context.user).first()
     if not collection and sample.collection:
         raise GraphQLError('{"collection": ["Does not exist"]}')
     if collection and not does_user_have_permission_on_collection(
             info.context.user, collection, 4):
         raise GraphQLError(
             '{"sample": ["The new collection is not owned by you"]}')
     if not does_user_have_permission_on_sample(info.context.user, sample,
                                                2):
         raise GraphQLError(
             '{"sample": ["You don\'t have permission to edit this sample"]}'
         )
     if not collection: kwargs["collection"] = None
     form = SampleForm(kwargs, instance=sample)
     if form.is_valid():
         form.save()
         form.instance.collection = collection
         form.instance.save()
         return UpdateSampleMutation(sample=form.instance)
     raise GraphQLError(json.dumps(form.errors))
Beispiel #2
0
 def mutate(self, info, **kwargs):
     if not info.context.user:
         raise GraphQLError(json.dumps({"error": "Not authorized"}))
     sample = readable_samples(Sample.objects.filter(id=kwargs["id"]),
                               info.context.user).first()
     if not sample: raise GraphQLError('{"sample": ["Does not exist"]}')
     if not does_user_have_permission_on_sample(info.context.user, sample,
                                                4):
         raise GraphQLError('{"sample": ["Not an owner"]}')
     executions = Job.objects.filter(sample=sample)
     executions.delete()
     sample.delete()
     return DeleteSampleMutation(success=True)
Beispiel #3
0
    def mutate(self, info, **kwargs):
        if not info.context.user:
            raise GraphQLError(json.dumps({"error": "Not authorized"}))
        sample = readable_samples(Sample.objects.filter(id=kwargs["id"]),
                                  info.context.user).first()
        if not sample: raise GraphQLError('{"sample": ["Does not exist"]}')

        if not does_user_have_permission_on_sample(info.context.user, sample,
                                                   3):
            raise GraphQLError(
                '{"sample": ["You do not have share permissions"]}')
        user = User.objects.filter(id=kwargs.get("user")).first()
        if kwargs.get("user") and not user:
            raise GraphQLError('{"user": ["Does not exist"]}')
        if not 0 <= kwargs["permission"] <= 3:
            raise GraphQLError('{"permission": ["Not a valid permission"]}')
        link = SampleUserLink.objects.get_or_create(sample=sample,
                                                    user=user)[0]
        if kwargs["permission"] == 0:
            link.delete()
        else:
            link.permission = kwargs["permission"]
            link.save()
        return UpdateSampleAccessMutation(user=user, sample=sample)
Beispiel #4
0
 def resolve_sample(self, info, **kwargs):
     sample = Sample.objects.filter(id=kwargs["id"]).first()
     if sample and does_user_have_permission_on_sample(info.context.user, sample,1 ):
         return sample
     raise GraphQLError('{"sample": "Does not exist"}')
Beispiel #5
0
 def resolve_can_edit(self, info, **kwargs):
     return does_user_have_permission_on_sample(info.context.user, self, 2)
Beispiel #6
0
 def resolve_is_owner(self, info, **kwargs):
     return does_user_have_permission_on_sample(info.context.user, self, 4)