Beispiel #1
0
    def update_permissions(self, trans, history_id, history_content_id, payload: Dict[str, Any] = None, **kwd):
        """
        Set permissions of the given library dataset to the given role ids.

        PUT /api/histories/{history_id}/contents/datasets/{encoded_dataset_id}/permissions

        :param  encoded_dataset_id:      the encoded id of the dataset to update permissions of
        :type   encoded_dataset_id:      an encoded id string
        :param   payload: dictionary structure containing:

            :param  action:     (required) describes what action should be performed
                                available actions: make_private, remove_restrictions, set_permissions
            :type   action:     string
            :param  access_ids[]:      list of Role.id defining roles that should have access permission on the dataset
            :type   access_ids[]:      string or list
            :param  manage_ids[]:      list of Role.id defining roles that should have manage permission on the dataset
            :type   manage_ids[]:      string or list
            :param  modify_ids[]:      list of Role.id defining roles that should have modify permission on the library dataset item
            :type   modify_ids[]:      string or list

        :type:      dictionary

        :returns:   dict of current roles for all available permission types
        :rtype:     dictionary

        :raises: RequestParameterInvalidException, ObjectNotFound, InsufficientPermissionsException, InternalServerError
                    RequestParameterMissingException
        """
        if payload:
            kwd.update(payload)
        update_payload = get_update_permission_payload(kwd)
        return self.service.update_permissions(trans, history_content_id, update_payload)
Beispiel #2
0
    def update_permissions(self, trans, dataset_id, payload, **kwd):
        """
        PUT /api/datasets/{encoded_dataset_id}/permissions
        Updates permissions of a dataset.

        :rtype:     dict
        :returns:   dictionary containing new permissions
        """
        hda_ldda = kwd.pop('hda_ldda', DatasetSourceType.hda)
        if payload:
            kwd.update(payload)
        update_payload = get_update_permission_payload(kwd)
        return self.service.update_permissions(trans, dataset_id,
                                               update_payload, hda_ldda)
Beispiel #3
0
 def update_permissions(
     self,
     trans=DependsOnTrans,
     dataset_id: EncodedDatabaseIdField = DatasetIDPathParam,
     # Using a generic Dict here as an attempt on supporting multiple aliases for the permissions params.
     payload: Dict[str, Any] = Body(
         default=...,
         example=UpdateDatasetPermissionsPayload(),
     ),
 ) -> DatasetAssociationRoles:
     """Set permissions of the given history dataset to the given role ids."""
     update_payload = get_update_permission_payload(payload)
     return self.service.update_permissions(trans, dataset_id,
                                            update_payload)