Fix edge cases / add missing implementation
- Dominant language
- Java
- Stars
- 593
- Forks
- 123
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 4
Description
## Edge cases
- [ ] Cross Project Content - We need to ensure that content linking is limited to a single project. Otherwise GraphQL will not work.
- [ ] Fileupload - The file upload is currently not checking against the mimetype whilelist of the schema.
Moving Tags - It is currently not possible to move tags in between tag families. Tag reference update will not work.
- [ ] Node Field - The segmentField is currently not populated or checked against the schema.
- [ ] Read with Role - Currently it is not possible to read an element using a dedicated role.
- [ ] Number Field - The number field limits are currently not handled.
- [ ] Schema whitelisting - This is not yet implemented for node field schema
- [ ] Image Manipulation - Bogus query parameters must be checked and an meaningful error message must be returned.
## Potential pitfalls
- [x] Update permissions - A admin user could potentially update his own permission set of the admin role and restrict him on updating objects.
- [ ] Tag Conflicts - Tags are currently assigned to a tagroot. Newly created tags that have the same name will cause an error. It is therefore not possible to have two tags with the same assigned each to a different tagfamily.
- [ ] Node Field Updates - Node field updates are not checking the permissions on the node field.
- [ ] Node Field Read - Node fields are not checked against permissions of the user.
- [ ] Delete node - Delete a folder which has subfolders that are read only: Undefined behavior. Missing permissions on a folder stop deletion and missing permission on a file just cause an warning. name. The field would need to be a string field. The field would need to be mandatory.
- [ ] Node Move/Delete Folder - Node move may cause problems when moving to a folder that can be deleted.
## Questions / Other
- [ ] Tag deletion - Should tags be deleted when they are removed from the tagfamily? → TagFamilyImpl.removeTag(tag)
## Possible Feature
- [ ] Schema whitelisting - Currently it is not possible to restrict the creation of nodes in a given schema for a given parent node. A node of any schema can be created in the parent node.
- [ ] Role creation - It would be useful to inherit permissions from an existing role when creating a new one.
- [ ] Binary Fields in Micronodes - Currently it is not allowed to add binary fields in micronodes. We should check whether we actually want this since those fields may not be usable for webroot resolving.
- [ ] Binary Field List - It is currently not possible to have a binary field list which holds multiple binary fields.
---
# Done
- [x] Applying recursive permissions takes a long time
- [x] File Download - Currently it is not possible to download segments of a file. This would be very useful for video streaming. (Http 206 - Content-Range) - #533
- [x] Search Index Handling - The search index handling is currently iterating over all found items since document level permission are not handled within ES. See #26
Contributor guide
Research direction
The issue names no implementation files or tests and combines many independent edge cases. Begin by selecting one unchecked item; TagFamilyImpl.removeTag(tag) is the only implementation entry point named. Done means the selected case is implemented and its behavior is verified, with the remaining checklist separately scoped.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- graphql, java
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100