[
https://jira.duraspace.org/browse/DS-655?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18761#action_18761
]
Robin Taylor commented on DS-655:
---------------------------------
There appear to be two relevant Java classes -
MetadataExposure - Checks to see if a metadata element has been flagged as
'hidden' in the dspace config and if so then doesn't display it unless the
user is in the administrator group.
AuthorizeManager - Roughly speaking, checks to see if a user is authorised to
perform a particular action on a resource.
I would argue that there is no need for MetadataExposure since AuthorizeManager
could/should perform the same function, and it would be better design to only
have one place to go to for any authorisation needs.
What development would need done to allow this ?
Firstly change DCValue to extend DSpaceObject so that it can be passed as a
parameter to AuthorizeManager. Then there are a number of options...
1. Hack Authorizemanager to check on the type of the DSpaceObject and if it is
a DCValue then look up dspace.cfg as MetadataExposure currently does.
Note :- by passing as a parameter to AuthorizeManager an Action that is only
avail to Admins and community/collection admins we could satisy this Jira issue.
2. Same as 1 but get rid of the lookup of dspace.cfg by storing the 'isHidden'
values in the metadata registry in the database. This is Claudia's request
"https://jira.duraspace.org/browse/DS-800 - Manage visibilty of metadata fields
as field attribute rather than in dspace.cfg".
3. Store Resource Policies for each DCValue. On the face of it this appears to
be the best solution as it would allow for different levels of metadata
visibility for item/collection/community/site, plus it would remove the need to
consider DCValue objects differently with AuthorizeManager, but it would
require a lot more development.
Realistically I would aim to do number 2. Any objections ?
Cheers, Robin.
> MetadataExposure hides fields except for System Admins - this should extend
> to Community and Collection Admins
> --------------------------------------------------------------------------------------------------------------
>
> Key: DS-655
> URL: https://jira.duraspace.org/browse/DS-655
> Project: DSpace
> Issue Type: Improvement
> Components: DSpace API
> Affects Versions: 1.6.0, 1.6.1, 1.6.2
> Reporter: Bill Hays
> Assignee: Robin Taylor
> Original Estimate: 16 hours
> Remaining Estimate: 16 hours
>
> MetadataExposure provides an exclusion for SystemAdmins but not Community and
> Collection admins who are actually more likely to need access to metadata
> that is restricted to public view. For instance, the default metadata field
> for hiding is dc.description.provenance which is in the purview of Community
> and Collection admins at my location.
> Caveat: The comments in the class state that it is important to have a very
> efficient mechanism and to extend the class by calling
> AuthorizeManager.isAdmin(context, dso) would have a much greater overhead
> than the current AuthorizeManager.isAdmin(context). And for OAI this
> recommendation is not applicable.
> The hidden metadata is still available to all admins using the EditMetadata
> capability, yet this is a burden with the provenance field since it can be
> quite large.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.duraspace.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
Special Offer-- Download ArcSight Logger for FREE (a $49 USD value)!
Finally, a world-class log management solution at an even better price-free!
Download using promo code Free_Logger_4_Dev2Dev. Offer expires
February 28th, so secure your free ArcSight Logger TODAY!
http://p.sf.net/sfu/arcsight-sfd2d
_______________________________________________
Dspace-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dspace-devel