Security Fixes
This commit is contained in:
@@ -76,6 +76,20 @@ export const ProfileForm: React.FC<ProfileFormProps> = ({ user }: ProfileFormPro
|
|||||||
className="card-body"
|
className="card-body"
|
||||||
onSubmit={form.handleSubmit(async (values) => {
|
onSubmit={form.handleSubmit(async (values) => {
|
||||||
if (!values.id) return;
|
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, {
|
await editUser(values.id, {
|
||||||
...values,
|
...values,
|
||||||
email: values.email.toLowerCase(),
|
email: values.email.toLowerCase(),
|
||||||
|
|||||||
Reference in New Issue
Block a user