Je hebt 2 soorten users nodig:
alles zien
alles bewerken
alles verwijderen
alle sheets beheren
eigen planning zien
eigen aanwezigheid invullen
evaluaties invullen
oefeningen bekijken
beperkte edit rechten
Die sheet is eigenlijk een:
Maar je UI behandelt alles hetzelfde.
👉 Daardoor:
geen filtering per trainer
geen “my view”
geen restricted edit
geen ownership
Je app moet weten:
let currentUser = {
role: "admin", // of "trainer"
trainerId: 123
};
if(currentUser.role === "trainer"){
rows = rows.filter(r => r.trainerId == currentUser.trainerId);
}
alleen eigen groepen
alleen eigen sessies
alleen eigen leerlingen
Je sheets worden dan:
Sheet
Admin
Trainer
Trainers
full
read
Spelers
full
read
Groepen
full
read
Planning
full
own only
Aanwezigheid
full
own only
Evaluaties
full
own + input
Oefeningen
full
read
Lesbibliotheek
full
read
Beschikbaarheid
full
own edit
<select id="roleSelect">
<option value="admin">Administrator</option>
<option value="trainer">Trainer</option>
</select>
<input id="trainerId" placeholder="Trainer ID (alleen trainer)">
<button onclick="setUser()">Login</button>
function setUser(){
currentUser.role = roleSelect.value;
currentUser.trainerId = trainerId.value;
loadData();
}
Niet alles tonen voor trainer:
function renderNav(){
let tabs = Object.keys(db);
if(currentUser.role === "trainer"){
tabs = tabs.filter(t =>
t !== "Trainers" &&
t !== "Spelers"
);
}
nav.innerHTML = tabs.map(t=>`
<button onclick="showTab('${t}')">${t}</button>
`).join("");
}
function filterRows(tab, rows){
if(currentUser.role === "admin") return rows;
if(tab === "Planning"){
return rows.filter(r => r[4] == currentUser.trainerId);
}
if(tab === "Aanwezigheid"){
return rows.filter(r => r[4] == currentUser.trainerId);
}
return rows;
}
function canEdit(tab){
if(currentUser.role === "admin") return true;
return (
tab === "Planning" ||
tab === "Aanwezigheid" ||
tab === "Evaluaties"
);
}
Je systeem wordt:
“alles zichtbaar voor iedereen”
naar:
waar:
trainers alleen hun eigen wereld zien
admin alles beheert
data veilig gescheiden blijft
Je 9 sheets zijn NU al goed, maar:
Ik kan dit voor je bouwen:
login systeem (admin / trainer)
per sheet permissions
eigen dashboard per trainer
“Trainers Beschikbaar” live planning module
aanwezigheid + evaluatie workflow
echte SaaS structuur
“maak 2.4 role-based system”
We hebben nu 8 modules:
👉 Trainers
👉 Spelers
👉 Groepen
👉 Planning
👉 Aanwezigheid
👉 Evaluaties
👉 Oefeningen
👉 Lesbibliotheek
We willen naar modules:
👉 Trainers
👉 Spelers
👉 Groepen
👉 Planning
👉 Aanwezigheid
👉 Evaluaties
👉 Oefeningen
👉 Lesbibliotheek
Trainers
Spelers
Groepen
Planning
Lessenreeksen
Aanwezigheid
Evaluaties
Oefeningen
Lesbibliotheek
Trainers Beschikbaar