Hello All,
I’m trying to make a registration form to assign roles to users when they sign up on Wix Editor. I tried following this tutorial: https://youtu.be/CX0MZINzaaQ?si=cOMvs8IFFnRtkXhK to make the form assign roles, but am running into error 500 for about 12 hours now with no resolution. I’ve tried using gen ai to edit the code and looked on forums for this problem, but haven’t found anyone encountering the issue. Below is the frontend and backend code that I’m using along with a CMS which is capturing the email and choice of the user to redirect them to different pages.
Frontend:
import { get_userData, assignRole } from ‘backend/roles.jsw’;
$w.onReady(function() {
console.log(“Page is ready”);
$w(‘#button4’).onClick(async () => {
console.log(“Button clicked!”);
try {
const selectedRole = $w("#roleDropdown").value;
console.log("Selected Role:", selectedRole);
if (!selectedRole) {
console.error("No role selected");
$w("#errorMessage").text = "Please select a role before proceeding.";
$w("#errorMessage").show();
return;
}
console.log("Fetching user data...");
let userData = await get_userData();
console.log("User data fetched:", userData);
if (!userData) {
console.error("User data is null or undefined");
throw new Error("Failed to fetch user data");
}
console.log("DATA:", userData);
console.log("USER:", userData.USER);
console.log("User-ID:", userData.userID);
console.log("User-Logged-In:", userData.loginSTATUS);
console.log("User-Email:", userData.userEMAIL);
console.log("User-Roles:", userData.userRoles);
console.log("Assigning role...");
const result = await assignRole(selectedRole, userData.userID);
console.log("Role assignment result:", result);
if (result.success) {
console.log("Role assigned successfully");
$w("#successMessage").text = "Role assigned successfully!";
$w("#successMessage").show();
$w("#errorMessage").hide();
} else {
console.error("Failed to assign role:", result.message);
$w("#errorMessage").text = `Failed to assign role: ${result.message}`;
$w("#errorMessage").show();
$w("#successMessage").hide();
}
} catch (error) {
console.error("An error occurred:", error);
$w("#errorMessage").text = "An unexpected error occurred. Please try again later.";
$w("#errorMessage").show();
$w("#successMessage").hide();
}
});
});
Backend:
import wixUsersBackend from ‘wix-users-backend’;
import { authorization } from ‘wix-members-backend’;
export async function get_userData() {
let USER = await wixUsersBackend.currentUser;
let userID = await USER.id;
let isLoggedIn = USER.loggedIn;
let userEmail = await USER.getEmail();
let userRoles = await USER.getRoles();
let DATA = {
USER,
userID,
loginSTATUS: isLoggedIn,
userEMAIL: userEmail,
userRoles
};
return DATA;
}
export async function assignRole(roleId, memberId) {
const roles = {
“tutor”: “b5834eeb-709d-45f4-8680-af3f10889df1”,
“student”: “91407197-0896-42a4-9bf9-c18792896cd1”,
“parent”: “29c37f68-f630-4d68-92e5-4095a6bba49c”
};
const actualRoleId = roles[roleId] || roleId;
console.log(Attempting to assign role: ${actualRoleId} to member: ${memberId}
);
try {
await authorization.assignRole(actualRoleId, memberId);
console.log(Role ${actualRoleId} successfully assigned to member ${memberId}
);
return { success: true, message: “Role assigned successfully” };
} catch (error) {
console.error(“Error assigning role:”, error);
return {
success: false,
message: Failed to assign role: ${error.message}
,
errorDetails: error
};
}
}
Any help or improvements on this code would be appreciated
Thanks.