Skip to content

Add a Group Management component for authorization #46

Description

@d-ryan-ashcraft

Summary

Introduce a new, reusable UI component — codifyiq_group_manager — that lets any app manage authorization groups and assign them to users in a consistent, polished way. Today each project that needs "who belongs to which group" reinvents the screens; this gives us one drop-in, Material Design 3 surface to reuse everywhere.

Motivation

Most of our apps eventually need some form of access control. The common, lightweight shape is simply: a user belongs to one or more groups, and the app derives permissions from that membership. We keep rebuilding that UI ad hoc, with inconsistent look-and-feel and varying quality. A shared component removes the duplicated effort and gives users a familiar experience across products.

Scope

  • Manage the group catalog — create, edit, and delete groups, with a clear, searchable list that holds up when the catalog grows.
  • Assign groups to a user — pick one or more groups for a given person quickly, with search for when there are many groups.
  • Presentation only — the component owns the UX and in-memory state; each app wires it to its own backend/persistence. It does not perform real authorization.

Non-goals (keep it simple, by design)

  • No nested/hierarchical groups.
  • No separate "roles" concept distinct from groups.
  • No opinion about how permissions are stored or enforced server-side.

Intent / quality bar

  • Consistent Material Design 3 throughout, using classic, well-understood UI patterns.
  • Theme-aware — colors and styling follow each host app's theme automatically (including light/dark), so it looks native wherever it's dropped in.
  • Adaptive — works well from mobile widths to large desktop windows, with sensible layout and comfortable content width on big screens.
  • Drop-in and composable — usable as a complete screen for the common case, or as smaller building blocks for custom flows.
  • Ships as its own independently published package, consistent with the rest of the component suite (own README, changelog, license, example, and tests).

Acceptance criteria

  • A consumer can manage a group catalog (create/edit/delete) and assign groups to users with minimal wiring.
  • Deleting a group cleanly removes it from everyone it was assigned to.
  • Long lists of groups and members are searchable.
  • Appearance follows the host app's M3 theme and adapts across screen sizes.
  • Demonstrated in the shared example catalog app and covered by tests.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions