Security Fixes
This commit is contained in:
@@ -76,6 +76,20 @@ export const ProfileForm: React.FC<ProfileFormProps> = ({ user }: ProfileFormPro
|
||||
className="card-body"
|
||||
onSubmit={form.handleSubmit(async (values) => {
|
||||
if (!values.id) return;
|
||||
if (values.id === session.data?.user.id && values.permissions !== user.permissions){
|
||||
toast.error("Du kannst deine eigenen Berechtigungen nicht ändern.");
|
||||
return;
|
||||
}
|
||||
if ( values.permissions?.some((perm) => !session.data?.user.permissions.includes(perm)) ){
|
||||
toast.error("Du kannst Berechtigungen nicht hinzufügen, die du selbst nicht besitzt.");
|
||||
return;
|
||||
}
|
||||
const removedPermissions = user.permissions?.filter((perm) => !values.permissions?.includes(perm)) || [];
|
||||
if ( removedPermissions.some((perm) => !session.data?.user.permissions.includes(perm)) ){
|
||||
toast.error("Du kannst Berechtigungen nicht entfernen, die du selbst nicht besitzt.");
|
||||
return;
|
||||
}
|
||||
|
||||
await editUser(values.id, {
|
||||
...values,
|
||||
email: values.email.toLowerCase(),
|
||||
|
||||
Reference in New Issue
Block a user