scalableminds / webknossos

Visualize, share and annotate your large 3D images online
https://webknossos.org
GNU Affero General Public License v3.0
127 stars 24 forks source link

Misleading error message when starting jobs for datasets of other organizations #8165

Open fm3 opened 1 week ago

fm3 commented 1 week ago

Starting processing jobs for datasets of other organizations is not currently allowed, even if the datasets are public or viewed by a valid sharing token.

While fully allowing this for some jobs/situations is a topic for another day (also compare discussion at https://github.com/scalableminds/webknossos/issues/7360 ), what can be improved now is the error message.

Some jobs already have a readable error message, like “Currently nuclei inferral is only allowed for datasets of your own organization.”. However, some, like render_animation, just show “Organization b2275d664e4c2a96 could not be found”. This should be unified, e.g. by passing GlobalAccessContext to organizationDAO.findOne, and then checking request.identity._organization == organization._id with a suitable message.

The same should be done for runTraining and runInference in AiModelController. Looks like the frontend does not currently send the organizationId there at all, which leads to unusable 404 errors if tried on another orga’s dataset

normanrz commented 1 day ago

Probably, it would also be better to not even have the button for these datasets

fm3 commented 1 day ago

I agree! I think this can be done in two separate PRs though. The backend improved error message thing should be a very quick change, while adding the permission logic to the frontend seems a little more complex.