Allow display of ex-members data in group#638
Conversation
for more information, see https://pre-commit.ci
|
This pull request has been mentioned on Image.sc Forum. There might be relevant details there: https://forum.image.sc/t/visibility-of-data-from-a-user-that-left-the-group/117309/6 |
|
I wanted to try this out and on my sandbox I ran Any other way to test this? |
|
Apologies - haven't tested much! Hopefully that commit should fix that. |
|
@JensWendt - Did you manage to try this workflow above? |
|
This is causing a failing test https://merge-ci.openmicroscopy.org/jenkins/job/OMERO-test-integration/544/testReport/OmeroWeb.test.integration.test_tree/TestTree/test_marshal_experimenter/ The test fails as it's expected that I don't think that |
ab50dfd to
1c7bdfb
Compare
|
Excluding to avoid failing test till I have time to discuss/fix the test --exclude |
|
Hey Will, sorry for the delay, I was prepping/holding a workshop and then I was sick. |
|
@will-moore since removing the membership check happens in methods used for different templates, are there any other features impacted by this change? Will it be possible to access data in other places now that was prohibited before? I am trying to determine what the general security implications are. |
|
In general, I don't think omero-web should be trying to apply any security / permissions that's different from the server. There is just the one failing test above with this change, so I don't think it has a big impact. |
Totally agreed, security is not quite the right term to use here. I'm more talking about impact on other features, and I guess why this restriction was there in the first place? |
|
This restriction was added because we thought that if you are trying to set the context to show "user-1's" data in "group A" then you should first ensure that user-1 is a member of group A. We never considered the case where user-1 could have left group A. So, if you are in group A, trying to switch context to user-1 and they're not a member, then you abort the context switch. So if you are in group A (or a different group), looking at someone else's data, then you follow a link to an image belonging to user-1 in that group, But if you're already looking at "All Members" then that same link will work OK. |
Understood, yet I still think that we should address and support this in a different way. Some of these changes were introduced in b5fa7b7 in response to a security vulnerability and released in a combined OMERO.server 5.6.1 and OMERO.web 5.6.3 release (see https://www.openmicroscopy.org/2020/03/25/omero-5-6-1.html), so at this point I'm not convinced that removing the restriction is a good idea. If we want to support filtering by experimenters who are no longer in the current group, it might be better to add targeted exceptions or a new feature that allows users to do that. |
|
I think the change in b5fa7b7 was introduced along with server changes that also obscured details of Experimenters who you don't share a group with. I think we made the changes in web as a "belt and braces" approach, before we had the fix in the server (even though both were released at the same time).
|
|
I guess there are 2 parts to this PR:
Removing the sql filter means that I can access that user via
By removing the check, we allow you to filter a group by any user. So, without changing the group context, you can manually go to |

Currently, if you set the user context (for filtering data in the tree) to a user who is not in the current group, the filtering will automatically switch to "All Members". However, this prevents filtering by an Experimenter who has left a Group: see https://forum.image.sc/t/visibility-of-data-from-a-user-that-left-the-group/117309
This PR removes that restriction, allowing you to filter by a user who is not a member of the current Group.
With these changes you can: use
?experimenter=123or?image-123(image owned by ex-member) to switch the filtering of a group to the Ex member (without changing the group context or switching to "All Members").E.g. this workflow...
A follow-up PR could add options to the Group-User dropdown menu to check for the existence of any data that belongs to non-group members (see discussion on image.sc above).