linguabot commited on
Commit
3375c6a
·
verified ·
1 Parent(s): b0bf348

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. routes/tutorial-refinity.js +9 -8
routes/tutorial-refinity.js CHANGED
@@ -562,6 +562,7 @@ router.get('/tasks', async (req, res) => {
562
  try {
563
  const weekNumber = parseInt(req.query.weekNumber) || null;
564
  const isAdmin = isAdminUser(req);
 
565
 
566
  let query = {};
567
  if (weekNumber) {
@@ -571,12 +572,10 @@ router.get('/tasks', async (req, res) => {
571
  let tasks = await TutorialRefinityTask.find(query).sort({ createdAt: -1 }).lean();
572
 
573
  // For non-admin users, only show admin-created tasks
574
- if (!isAdmin) {
575
- tasks = tasks.filter(t => {
576
- // Assume tasks without createdBy are admin-created, or check a flag if you have one
577
- return true; // For now, show all tasks. Adjust based on your needs.
578
- });
579
- }
580
 
581
  res.json(tasks);
582
  } catch (e) {
@@ -660,12 +659,14 @@ router.get('/tasks/:taskId/versions', async (req, res) => {
660
 
661
  let versions = await TutorialRefinityVersion.find({ taskId }).sort({ versionNumber: 1 });
662
 
663
- // For non-admin users, only show their own versions (individual practice)
 
664
  if (!isAdmin && currentUser) {
665
  versions = versions.filter(v => {
666
  const author = String(v.originalAuthor || '').toLowerCase();
667
  const revised = String(v.revisedBy || '').toLowerCase();
668
- return author === currentUser || revised === currentUser;
 
669
  });
670
  }
671
 
 
562
  try {
563
  const weekNumber = parseInt(req.query.weekNumber) || null;
564
  const isAdmin = isAdminUser(req);
565
+ const currentUser = getCurrentUser(req);
566
 
567
  let query = {};
568
  if (weekNumber) {
 
572
  let tasks = await TutorialRefinityTask.find(query).sort({ createdAt: -1 }).lean();
573
 
574
  // For non-admin users, only show admin-created tasks
575
+ // Admin-created tasks are those where createdBy matches an admin user
576
+ // Since only admins can create tasks (enforced in POST), all tasks are admin-created
577
+ // So we show all tasks to all users - they can all access the same admin-created tasks
578
+ // Each user's revisions are kept separate via version filtering
 
 
579
 
580
  res.json(tasks);
581
  } catch (e) {
 
659
 
660
  let versions = await TutorialRefinityVersion.find({ taskId }).sort({ versionNumber: 1 });
661
 
662
+ // For non-admin users: show admin-created first version (version 1) + their own versions
663
+ // This allows students to start revising from the admin-created starting point
664
  if (!isAdmin && currentUser) {
665
  versions = versions.filter(v => {
666
  const author = String(v.originalAuthor || '').toLowerCase();
667
  const revised = String(v.revisedBy || '').toLowerCase();
668
+ // Include version 1 (admin-created starting point) OR user's own versions
669
+ return v.versionNumber === 1 || author === currentUser || revised === currentUser;
670
  });
671
  }
672