Repository navigation
Add admin backend for users and featured plugins - #181
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds an admin backend in a local CakePHP Admin plugin, using DaisyUI components, the existing themes and GitHub login, and Interact's standard update endpoint. Administrators can search users, assign admin/user roles, and suspend or reactivate accounts. CakePHP ORM enums define roles and shared status choices; current access is checked on every admin island request, with safeguards for self-access and the last active administrator. Native request authorization protects admin pages, and PrimaryKeySession reloads active users on every request. Sidebar links use Interact navigation across admin and public pages.
Featured selections move from application configuration into the database, preserving the existing selection and random display of up to three cards. The listing handles filters, sorting, pagination, and removal. A separate keyed editor island owns the package picker, whole-form draft, live preview, and saving; save events refresh the listing while preserving its filters and sort. FormHelper supplies DaisyUI controls and entity validation errors. Shared models own query finders, normalization, and package selection rules. All data columns are sortable, including GitHub stars and downloads.
Validation
Rollout
Apply the application migrations. Existing accounts default to active users. Existing sessions require signing in again because login now stores only the user ID in AuthId instead of a full cached identity. After signing in with GitHub, promote the initial administrator with:
The README documents the admin workflow and console access management.