package handlers import ( "Yimaru-Backend/internal/domain" "github.com/gofiber/fiber/v2" ) // Manage helpers for hierarchy publish gating: staff who can create or update an entity see // drafts; everyone else only sees PUBLISHED rows (mirrors canManageLessons / practices). func (h *Handler) canManagePrograms(c *fiber.Ctx) bool { rn := string(c.Locals("role").(domain.Role)) return h.rbacSvc.HasPermission(rn, "programs.create") || h.rbacSvc.HasPermission(rn, "programs.update") } func (h *Handler) canManageLMSCourses(c *fiber.Ctx) bool { rn := string(c.Locals("role").(domain.Role)) return h.rbacSvc.HasPermission(rn, "courses.create") || h.rbacSvc.HasPermission(rn, "courses.update") } func (h *Handler) canManageLMSModules(c *fiber.Ctx) bool { rn := string(c.Locals("role").(domain.Role)) return h.rbacSvc.HasPermission(rn, "modules.create") || h.rbacSvc.HasPermission(rn, "modules.update") } func (h *Handler) canManageExamPrepCatalogCourses(c *fiber.Ctx) bool { rn := string(c.Locals("role").(domain.Role)) return h.rbacSvc.HasPermission(rn, "exam_prep.catalog_courses.create") || h.rbacSvc.HasPermission(rn, "exam_prep.catalog_courses.update") } func (h *Handler) canManageExamPrepUnits(c *fiber.Ctx) bool { rn := string(c.Locals("role").(domain.Role)) return h.rbacSvc.HasPermission(rn, "exam_prep.units.create") || h.rbacSvc.HasPermission(rn, "exam_prep.units.update") } func (h *Handler) canManageExamPrepModules(c *fiber.Ctx) bool { rn := string(c.Locals("role").(domain.Role)) return h.rbacSvc.HasPermission(rn, "exam_prep.modules.create") || h.rbacSvc.HasPermission(rn, "exam_prep.modules.update") } func (h *Handler) canManageExamPrepLessons(c *fiber.Ctx) bool { rn := string(c.Locals("role").(domain.Role)) return h.rbacSvc.HasPermission(rn, "exam_prep.lessons.create") || h.rbacSvc.HasPermission(rn, "exam_prep.lessons.update") }