-
Notifications
You must be signed in to change notification settings - Fork 71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AuthZ - Add/Edit without Delete #385
Comments
This seems quite odd to me, but I certainly believe that it's based on real examples. Can you give an concrete example, just to help me think about this? |
@ajs6f student employees. |
Thank @ruebot , but that doesn't quite get me there. Is the idea that a student employee will have to get someone to help if they put something in a collection by mistake? Is the idea that a student employee can make as many things as they want and delete them as they want, but has to have authorization to add them to a particular collection? |
No. My understanding, and the current functionality that I use is: a student worker can add objects to collections that they have permissions in. And, they are not allowed to delete or purge any objects in the repository. |
Okay, so the inbuilt assumption is that everything in a repo belongs to a "collection"? (Putting quotes there to indicate that the definition of that term is crucial.) |
Ah, I see what you're getting at. This is the discussion we were having the other day in irc, right? For now, my opinion is that everything in the repository should should be a member of something. |
Cool-- yeah, what I'm trying to get it is just that that question (the one you just asked) is bound up with this use case. It's actually bound up in a lot of authZ use cases, which often make similar assumptions. |
That's a good thing to tease out, and make explicit 😄 |
CLAW is the most explicit repository framework ever. It's positively indecent! |
😄 nick
To make that happen, there will be at least something that is not a member of something(root). And that leads to a "root" construct can not have the same rules as all other RDF resources. That could be weird if it's really some type of content, and not just a virtual creation. Now i'm confused and i guess it will confuse others 😄 |
@DiegoPino right. there has to be one exception to it, or we hang everthing off of fcrepo root. |
Or you allow cycles. Personally, I have no problem with cycles. |
So I don't want to get too hung up on the "everything in collections" side discussion. I understand that a malicious user with "edit" permissions could erase all the data in an object, but this limitation is more to act as a safe guard against these student or temporary workers who may or may not get extensive training. There are ways to restrict this type of behaviour from the Drupal side, but we will not be able to restrict it on the Fedora side. So I guess this comes back to the limitations of WebAC. If I want to allow a user to edit a resource but not delete that resource, there is currently no way to deal with that level of granularity. This is mostly important because if I say to my boss that everyone will now have delete permissions on anything they can edit, she may not be happy. |
Has CLAW officially engaged with the people working on WebAC (not the Fedora people, the W3C people) to raise this issue? |
No and I'm not sure that there a) is anybody to engage with or b) whether I have a viable solution in mind. When implementing WebAC in Fedora, the discussion was around how to map a WebAC permission to a repository permission. We (and by we I mean others) were able to attach them to the Modeshape permissions. Perhaps a refactoring could be done, but I remember that the issues around how to enforce these permissions across all the checks done within Fedora lead to this solution. |
https://www.w3.org/wiki/index.php?title=WebAccessControl&action=history Looks like mostly Henry Story and looks like he hasn't done much since January. Maybe we should check in with him? |
Glossary Used
Examples:
The text was updated successfully, but these errors were encountered: