Page Rights UI
Description
Proposal for View and Edit Page Permissions
This document outlines a proposal for implementing view and edit page permissions within Cristal. The proposed changes include a naming convention adjustment, a unified permissions modal, and additional usability improvements.
Naming Scheme:
Currently, XWiki refers to these controls as Rights. However, the term Permissions is more commonly used across other applications and software platforms. While renaming this in XWiki would introduce significant challenges, such as documentation updates, source code modifications, and potential disruptions to user workflows, Cristal presents an opportunity to adopt the more widely recognized term. Aligning with industry standards enhances clarity and simplifies onboarding for users familiar with other platforms.
Proposal: utilizing Permissions in Cristal to maintain consistency with broader software conventions.
Permissions Modal:
To facilitate the management of view and edit permissions, a dedicated modal window is proposed. This modal will serve as a centralized space for all personalization options, though the current focus will remain on permissions.
- Accessing the Modal: The permissions modal can be opened via an option located within the "More" menu.
- Content Layout:
- At the top of the modal, a contextual hint will indicate the backend associated with the current page.
- A brief explanatory note will clarify that the permissions are derived from the backend.

Filtering Users and Groups:
Filtering capabilities will leverage the existing LiveData filter, enabling efficient user and group searches.

Handling Permissions for Pages and Children:
Unlike XWiki, where permissions for parent and child pages are managed separately, Cristal will streamline this process by using a unified screen for both. Key features include:
- Unified Control: By default, permissions for a page and its children are managed together via a single table.
- Separation Option: Users can check a Separate Permissions checkbox to split control. When enabled, a second table will appear for managing child page permissions independently.
This approach simplifies permission management while providing flexibility for advanced use cases.

Usability Considerations:
- Scroll and Pagination: To handle scenarios where a large number of users and groups exist, individual scrollbars will be implemented for each permissions table. Pagination functionality will also be included to improve usability as needed.
- Backend-Specific Adaptations: Cristal supports multiple backends, which may require adjustments to the permissions screen layout. For example, filesystem backends might display permissions differently.

Permissions table for a filesystem backend
Summary and Next Steps:
The proposed permissions modal draws inspiration from existing solutions, such as those in XWiki, while introducing improvements tailored to Cristal. Key highlights include:
- Adoption of the term Permissions for consistency with industry standards.
- A unified modal for managing permissions, with flexibility for handling child pages.
- Support for scalability through scrollbars, pagination, and backend-specific adaptations.
Feedback on this proposal is highly encouraged, particularly regarding:
- The naming convention (Rights vs. Permissions).
- The usability of the unified modal design.
- Additional features or considerations to improve permission management workflows.
Thank you for reviewing this proposal. Please share your thoughts or suggestions for further refinement.
Thiago Krieck