refactor: remove can_sudo from department create/edit flow
This commit is contained in:
+3
-4
@@ -1067,14 +1067,14 @@ export const api = {
|
||||
request<{ departments: Department[]; count: number }>(`/organizations/${orgId}/departments`, {}, true, requestConfig),
|
||||
|
||||
// Create department
|
||||
createDepartment: (orgId: string, name: string, description?: string, canSudo?: boolean, requestConfig?: RequestConfig) =>
|
||||
createDepartment: (orgId: string, name: string, description?: string, requestConfig?: RequestConfig) =>
|
||||
request<{ department: Department }>(`/organizations/${orgId}/departments`, {
|
||||
method: 'POST',
|
||||
body: JSON.stringify({ name, description, can_sudo: canSudo }),
|
||||
body: JSON.stringify({ name, description }),
|
||||
}, true, requestConfig),
|
||||
|
||||
// Update department
|
||||
updateDepartment: (orgId: string, deptId: string, data: { name?: string; description?: string; can_sudo?: boolean }, requestConfig?: RequestConfig) =>
|
||||
updateDepartment: (orgId: string, deptId: string, data: { name?: string; description?: string }, requestConfig?: RequestConfig) =>
|
||||
request<{ department: Department }>(`/organizations/${orgId}/departments/${deptId}`, {
|
||||
method: 'PATCH',
|
||||
body: JSON.stringify(data),
|
||||
@@ -1780,7 +1780,6 @@ export interface Department {
|
||||
organization_id: string;
|
||||
name: string;
|
||||
description: string | null;
|
||||
can_sudo: boolean;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
deleted_at: string | null;
|
||||
|
||||
@@ -390,7 +390,7 @@ export default function DepartmentsPage() {
|
||||
const [selectedPrincipalId, setSelectedPrincipalId] = useState("");
|
||||
const [isLinking, setIsLinking] = useState(false);
|
||||
const [editingDept, setEditingDept] = useState<Department | null>(null);
|
||||
const [formData, setFormData] = useState({ name: "", description: "", can_sudo: false });
|
||||
const [formData, setFormData] = useState({ name: "", description: "" });
|
||||
const [expandedPolicies, setExpandedPolicies] = useState<Set<string>>(new Set());
|
||||
const [expandedMembers, setExpandedMembers] = useState<Set<string>>(new Set());
|
||||
|
||||
@@ -505,10 +505,9 @@ export default function DepartmentsPage() {
|
||||
const dept = await api.organizations.createDepartment(
|
||||
orgId,
|
||||
formData.name,
|
||||
formData.description || undefined,
|
||||
formData.can_sudo
|
||||
formData.description || undefined
|
||||
);
|
||||
setFormData({ name: "", description: "", can_sudo: false });
|
||||
setFormData({ name: "", description: "" });
|
||||
setIsCreateDialogOpen(false);
|
||||
await fetchDepartments(orgId);
|
||||
} catch (err) {
|
||||
@@ -523,9 +522,8 @@ export default function DepartmentsPage() {
|
||||
await api.organizations.updateDepartment(orgId, editingDept.id, {
|
||||
name: formData.name,
|
||||
description: formData.description || undefined,
|
||||
can_sudo: formData.can_sudo,
|
||||
});
|
||||
setFormData({ name: "", description: "", can_sudo: false });
|
||||
setFormData({ name: "", description: "" });
|
||||
setEditingDept(null);
|
||||
setIsEditDialogOpen(false);
|
||||
await fetchDepartments(orgId);
|
||||
@@ -548,7 +546,7 @@ export default function DepartmentsPage() {
|
||||
|
||||
const openEditDialog = (dept: Department) => {
|
||||
setEditingDept(dept);
|
||||
setFormData({ name: dept.name, description: dept.description || "", can_sudo: dept.can_sudo || false });
|
||||
setFormData({ name: dept.name, description: dept.description || "" });
|
||||
setIsEditDialogOpen(true);
|
||||
};
|
||||
|
||||
@@ -574,7 +572,7 @@ export default function DepartmentsPage() {
|
||||
Manage departments and organize team members
|
||||
</p>
|
||||
</div>
|
||||
<Button onClick={() => { setFormData({ name: "", description: "", can_sudo: false }); setIsCreateDialogOpen(true); }}>
|
||||
<Button onClick={() => { setFormData({ name: "", description: "" }); setIsCreateDialogOpen(true); }}>
|
||||
<Plus className="w-4 h-4 mr-2" />
|
||||
Create Department
|
||||
</Button>
|
||||
@@ -621,11 +619,7 @@ export default function DepartmentsPage() {
|
||||
<p className="font-medium text-foreground">
|
||||
{dept.name}
|
||||
</p>
|
||||
{dept.can_sudo && (
|
||||
<Badge variant="secondary" className="text-xs bg-amber-100 text-amber-800 dark:bg-amber-900 dark:text-amber-300">
|
||||
Sudo enabled
|
||||
</Badge>
|
||||
)}
|
||||
|
||||
</div>
|
||||
{dept.description && (
|
||||
<p className="mt-1 text-sm text-muted-foreground">
|
||||
@@ -758,18 +752,6 @@ export default function DepartmentsPage() {
|
||||
rows={3}
|
||||
/>
|
||||
</div>
|
||||
<div className="flex items-center justify-between p-3 border rounded-lg bg-muted/30">
|
||||
<div>
|
||||
<Label className="text-base font-medium cursor-pointer">Allow sudo access</Label>
|
||||
<p className="text-xs text-muted-foreground mt-1">Members of this department can use sudo</p>
|
||||
</div>
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={formData.can_sudo}
|
||||
onChange={(e) => setFormData({ ...formData, can_sudo: e.target.checked })}
|
||||
className="w-4 h-4 cursor-pointer"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<DialogFooter>
|
||||
<Button variant="outline" onClick={() => setIsCreateDialogOpen(false)}>
|
||||
@@ -811,18 +793,6 @@ export default function DepartmentsPage() {
|
||||
rows={3}
|
||||
/>
|
||||
</div>
|
||||
<div className="flex items-center justify-between p-3 border rounded-lg bg-muted/30">
|
||||
<div>
|
||||
<Label className="text-base font-medium cursor-pointer">Allow sudo access</Label>
|
||||
<p className="text-xs text-muted-foreground mt-1">Members of this department can use sudo</p>
|
||||
</div>
|
||||
<input
|
||||
type="checkbox"
|
||||
checked={formData.can_sudo}
|
||||
onChange={(e) => setFormData({ ...formData, can_sudo: e.target.checked })}
|
||||
className="w-4 h-4 cursor-pointer"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<DialogFooter>
|
||||
<Button variant="outline" onClick={() => setIsEditDialogOpen(false)}>
|
||||
|
||||
Reference in New Issue
Block a user