Добавлены недостающие файлы

This commit is contained in:
Ганеев Артем
2025-11-22 15:27:23 +03:00
parent 83910be95d
commit 19e61e5ed9
5 changed files with 13 additions and 60 deletions

View File

@@ -42,7 +42,6 @@ func (h *Handler) userIdentity(c *gin.Context) {
c.Next()
}
// requireRole - middleware-фабрика, возвращает middleware для проверки конкретных ролей
func (h *Handler) requireRole(allowedRoles ...internal.UserRole) gin.HandlerFunc {
return func(c *gin.Context) {
userRole, exists := c.Get(userRoleKey)
@@ -86,31 +85,4 @@ func (h *Handler) requireTeacher() gin.HandlerFunc {
func (h *Handler) requireStudent() gin.HandlerFunc {
return h.requireRole(internal.Student, internal.Teacher, internal.Admin)
}
func (h *Handler) checkAdminIdentity(c *gin.Context) {
header := c.GetHeader(authorizationHeader)
if header == "" {
newErrorResponse(c, http.StatusUnauthorized, "Пустой header авторизации")
return
}
headerParts := strings.Split(header, " ")
if len(headerParts) != 2 {
newErrorResponse(c, http.StatusUnauthorized, "Невалидный токен JWT")
return
}
userRole, err := h.services.ParseToken(headerParts[1])
if userRole != string(internal.Admin) {
newErrorResponse(c, http.StatusUnauthorized, "Недостаточно прав для выполнения запроса")
return
}
if err != nil {
newErrorResponse(c, http.StatusUnauthorized, "Ошибка при извлечении claims")
return
}
c.Set(userRoleKey, userRole)
}
}