feat: complete Epic 1 — team management & permission system
- Story 1.1: Permission enum, config, AuthorizesPermissions & HasWorkspaceScope traits, member→worker migration - Story 1.2: Team page with member list, invitation system with queued email - Story 1.3: Role assignment (Manager/Worker) and member removal with activity logging - Story 1.4: Owner-only permission toggle matrix for Managers (manage team, view logs, configure portal) - Story 1.5: Role-based access enforcement — Workers see only assigned declarations/clients, sidebar scoping - Story 1.6: Workspace switcher dropdown for multi-workspace users with session-based switching - 83 new/modified files, 182 tests passing with zero regressions Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -71,7 +71,11 @@ const emit = defineEmits<{
|
||||
type="password"
|
||||
:required="passwordRequired"
|
||||
autocomplete="new-password"
|
||||
:placeholder="passwordRequired ? 'Password' : 'Leave blank to keep current'"
|
||||
:placeholder="
|
||||
passwordRequired
|
||||
? 'Password'
|
||||
: 'Leave blank to keep current'
|
||||
"
|
||||
aria-invalid="!!form.errors.password"
|
||||
/>
|
||||
<InputError :message="form.errors.password" />
|
||||
@@ -97,7 +101,7 @@ const emit = defineEmits<{
|
||||
id="group"
|
||||
v-model="form.group"
|
||||
required
|
||||
class="border-input bg-background placeholder:text-muted-foreground focus-visible:ring-ring h-9 w-full rounded-md border px-3 py-1 text-sm shadow-xs outline-none focus-visible:ring-2 disabled:pointer-events-none disabled:opacity-50"
|
||||
class="h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm shadow-xs outline-none placeholder:text-muted-foreground focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50"
|
||||
:aria-invalid="!!form.errors.group"
|
||||
>
|
||||
<option value="" disabled>Select a group</option>
|
||||
|
||||
Reference in New Issue
Block a user