Updated register page and validation to new role schema
This commit is contained in:
1 parent
59f5c05b3e
commit
3b7f1b876f
4 files changed
+68
-6
No files matched your search
@@ -14,10 +14,12 @@ import { credentials } from "../../../Validation/validation";
|
||||
import { createToast } from "../../../Utils/toastUtils";
|
||||
import Field from "../../../Components/Inputs/Field";
|
||||
import { register } from "../../../Features/Auth/authSlice";
|
||||
import { useParams } from "react-router-dom";
|
||||
|
||||
const Register = ({ isAdmin }) => {
|
||||
const dispatch = useDispatch();
|
||||
const navigate = useNavigate();
|
||||
const { token } = useParams();
|
||||
const theme = useTheme();
|
||||
|
||||
// TODO If possible, change the IDs of these fields to match the backend
|
||||
@@ -35,14 +37,14 @@ const Register = ({ isAdmin }) => {
|
||||
email: "",
|
||||
password: "",
|
||||
confirm: "",
|
||||
role: "",
|
||||
role: [],
|
||||
});
|
||||
const [errors, setErrors] = useState({});
|
||||
|
||||
const handleSubmit = async (e) => {
|
||||
e.preventDefault();
|
||||
|
||||
const registerForm = { ...form, role: isAdmin ? "admin" : "user" };
|
||||
const registerForm = { ...form, role: isAdmin ? ["admin"] : [] };
|
||||
const { error } = credentials.validate(registerForm, {
|
||||
abortEarly: false,
|
||||
context: { password: form.password },
|
||||
|
||||
@@ -68,9 +68,7 @@ const credentials = joi.object({
|
||||
}
|
||||
return value;
|
||||
}),
|
||||
role: joi.string().messages({
|
||||
"string.empty": "Role is required",
|
||||
}),
|
||||
role: joi.array().required(),
|
||||
});
|
||||
|
||||
const monitorValidation = joi.object({
|
||||
|
||||
@@ -44,7 +44,7 @@ const registerValidation = joi.object({
|
||||
/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*()])[A-Za-z0-9!@#$%^&*()]+$/
|
||||
),
|
||||
profileImage: joi.any(),
|
||||
role: joi.string().required(),
|
||||
role: joi.array().required(),
|
||||
});
|
||||
|
||||
const editUserParamValidation = joi.object({
|
||||
|
||||
@@ -0,0 +1,62 @@
|
||||
[1mdiff --git a/Client/src/Pages/Auth/Register/Register.jsx b/Client/src/Pages/Auth/Register/Register.jsx[m
|
||||
[1mindex 1eaa99f..a5db763 100644[m
|
||||
[1m--- a/Client/src/Pages/Auth/Register/Register.jsx[m
|
||||
[1m+++ b/Client/src/Pages/Auth/Register/Register.jsx[m
|
||||
[36m@@ -14,10 +14,12 @@[m [mimport { credentials } from "../../../Validation/validation";[m
|
||||
import { createToast } from "../../../Utils/toastUtils";[m
|
||||
import Field from "../../../Components/Inputs/Field";[m
|
||||
import { register } from "../../../Features/Auth/authSlice";[m
|
||||
[32m+[m[32mimport { useParams } from "react-router-dom";[m
|
||||
[m
|
||||
const Register = ({ isAdmin }) => {[m
|
||||
const dispatch = useDispatch();[m
|
||||
const navigate = useNavigate();[m
|
||||
[32m+[m[32m const { token } = useParams();[m
|
||||
const theme = useTheme();[m
|
||||
[m
|
||||
// TODO If possible, change the IDs of these fields to match the backend[m
|
||||
[36m@@ -35,14 +37,14 @@[m [mconst Register = ({ isAdmin }) => {[m
|
||||
email: "",[m
|
||||
password: "",[m
|
||||
confirm: "",[m
|
||||
[31m- role: "",[m
|
||||
[32m+[m[32m role: [],[m
|
||||
});[m
|
||||
const [errors, setErrors] = useState({});[m
|
||||
[m
|
||||
const handleSubmit = async (e) => {[m
|
||||
e.preventDefault();[m
|
||||
[m
|
||||
[31m- const registerForm = { ...form, role: isAdmin ? "admin" : "user" };[m
|
||||
[32m+[m[32m const registerForm = { ...form, role: isAdmin ? ["admin"] : [] };[m
|
||||
const { error } = credentials.validate(registerForm, {[m
|
||||
abortEarly: false,[m
|
||||
context: { password: form.password },[m
|
||||
[1mdiff --git a/Client/src/Validation/validation.js b/Client/src/Validation/validation.js[m
|
||||
[1mindex 779b7c5..00d5a1d 100644[m
|
||||
[1m--- a/Client/src/Validation/validation.js[m
|
||||
[1m+++ b/Client/src/Validation/validation.js[m
|
||||
[36m@@ -68,9 +68,7 @@[m [mconst credentials = joi.object({[m
|
||||
}[m
|
||||
return value;[m
|
||||
}),[m
|
||||
[31m- role: joi.string().messages({[m
|
||||
[31m- "string.empty": "Role is required",[m
|
||||
[31m- }),[m
|
||||
[32m+[m[32m role: joi.array().required(),[m
|
||||
});[m
|
||||
[m
|
||||
const monitorValidation = joi.object({[m
|
||||
[1mdiff --git a/Server/validation/joi.js b/Server/validation/joi.js[m
|
||||
[1mindex a0c5857..ec77363 100644[m
|
||||
[1m--- a/Server/validation/joi.js[m
|
||||
[1m+++ b/Server/validation/joi.js[m
|
||||
[36m@@ -44,7 +44,7 @@[m [mconst registerValidation = joi.object({[m
|
||||
/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#$%^&*()])[A-Za-z0-9!@#$%^&*()]+$/[m
|
||||
),[m
|
||||
profileImage: joi.any(),[m
|
||||
[31m- role: joi.string().required(),[m
|
||||
[32m+[m[32m role: joi.array().required(),[m
|
||||
});[m
|
||||
[m
|
||||
const editUserParamValidation = joi.object({[m
|
||||
Reference in new issue
Block a user