Task #10690 (new)
Opened 11 years ago
RFE: better handling of omero.group=-1 in certain write situations
Reported by: | jamoore | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | Unscheduled |
Component: | Services | Version: | n.a. |
Keywords: | n.a. | Cc: | mtbcarroll, jburel, bpindelski, wmoore, cxallan |
Resources: | n.a. | Referenced By: | n.a. |
References: | n.a. | Remaining Time: | n.a. |
Sprint: | n.a. |
Description
See: https://github.com/openmicroscopy/openmicroscopy/pull/1011
Background
When the "omero.group==-1" work around was created (#3527), it was designed for allowing the reading of all objects regardless of group but *wasn't* concerned with allowing writing from any group. In fact, it tries to prevent some actions, since miss linking objects between groups is a "bad thing".
More and more remote methods have been found which would *like* to use omero.group=-1 but require write permissions. In some cases, this has been handled server-side; in others, client-side by manually and temporarily setting the omero.group value to a specific group.
RawFileStore?.setFileId and RawPixelsStore?.setPixelsId are clear cases where the server *could* provide this functionality.
Steps
- AbstractAmdServant? should have a method added (e.g. updateContext) which can be called if the omero.group setting is -1, and which looks up some reference object, whose group replaces -1 as the omero.group setting.
- RawFileStore? and RawPixelsStore? set methods should be updated to use the AbstractAmdServant? method.
- The save() and close() methods of both these methods may also need to take this value into account. If necessary, the return value of updateContext) can be stored in the servant implementation (e.g. RawFileStoreI) in order to use for all method invocations.