fix(projects): responsible-person picker shows only active users with projects.view

The create-project modal's 'Zodpovědná osoba' select listed every user
(including inactive ones). Filter the query server-side by projects.view and
hide inactive users client-side.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
BOHA
2026-06-06 14:19:15 +02:00
parent 103908cfb8
commit a1c251650b

View File

@@ -98,7 +98,12 @@ export default function Projects() {
...offerCustomersOptions(), ...offerCustomersOptions(),
enabled: showCreate, enabled: showCreate,
}); });
const usersQuery = useQuery({ ...userListOptions(), enabled: showCreate }); // Responsible-person picker: only users whose role can view projects
// (projects.view, filtered server-side) and who are active.
const usersQuery = useQuery({
...userListOptions("projects.view"),
enabled: showCreate,
});
const nextNumberQuery = useQuery({ const nextNumberQuery = useQuery({
...projectNextNumberOptions(), ...projectNextNumberOptions(),
enabled: showCreate, enabled: showCreate,
@@ -512,11 +517,13 @@ export default function Projects() {
className="admin-form-input" className="admin-form-input"
> >
<option value="">— nepřiřazeno —</option> <option value="">— nepřiřazeno —</option>
{(usersQuery.data ?? []).map((u) => ( {(usersQuery.data ?? [])
<option key={u.id} value={u.id}> .filter((u) => u.is_active)
{u.first_name} {u.last_name} .map((u) => (
</option> <option key={u.id} value={u.id}>
))} {u.first_name} {u.last_name}
</option>
))}
</select> </select>
</FormField> </FormField>
</div> </div>