fix: prevent deleting project owner

This commit is contained in:
Zhi
2026-03-12 12:47:17 +00:00
parent efd1e53f14
commit dceb836385

View File

@@ -59,7 +59,12 @@ export default function ProjectDetailPage() {
api.get<ProjectMember[]>(`/projects/${id}/members`).then(({ data }) => setMembers(data))
}
const removeMember = async (userId: number) => {
const removeMember = async (userId: number, role: string) => {
// Prevent removing owner
if (role === 'admin') {
alert('Cannot remove project owner (admin)')
return
}
if (!confirm('Remove this member?')) return
await api.delete(`/projects/${id}/members/${userId}`)
api.get<ProjectMember[]>(`/projects/${id}/members`).then(({ data }) => setMembers(data))
@@ -131,7 +136,7 @@ export default function ProjectDetailPage() {
{members.map((m) => (
<span key={m.id} className="badge" style={{marginRight: 8}}>
{`User #${m.user_id} (${m.role})`}
<button onClick={(e) => { e.stopPropagation(); removeMember(m.user_id) }} style={{marginLeft: 8, background: 'none', border: 'none', color: 'red', cursor: 'pointer'}}>×</button>
<button onClick={(e) => { e.stopPropagation(); removeMember(m.user_id, m.role) }} style={{marginLeft: 8, background: 'none', border: 'none', color: 'red', cursor: 'pointer'}}>×</button>
</span>
))}
</div>