Documentation
¶
Index ¶
Constants ¶
const UniversalAuthUserKey authHelpersContextKey = "Universal-Auth-User-Key"
Variables ¶
This section is empty.
Functions ¶
func HasRole ¶
HasRole проверяет, имеет ли текущий пользователь указанную роль в своих JWT-клеймах. Возвращает false, если клеймы отсутствуют или роль не найдена.
Параметры:
- c: контекст Gin, содержащий данные запроса и аутентификации.
- role: строка с названием роли (например, "admin", "moderator").
Возвращает:
- bool: true, если пользователь имеет указанную роль; иначе false.
func IsAdminAny ¶
IsAdminAny проверяет, является ли указанный пользователь (по ID) администратором. Использует внешний вызов authhttp.IsAdmin с передачей пула соединений к базе данных. Не требует, чтобы пользователь был текущим — подходит для проверки любых пользователей.
Параметры:
- c: контекст Gin, из которого извлекается пул соединений к PostgreSQL.
- userID: строковый идентификатор пользователя, статус администратора которого нужно проверить.
Возвращает:
- bool: true, если пользователь с указанным ID является администратором; иначе false.
Ошибки при обращении к БД игнорируются, и в случае ошибки возвращается false. Паникует если в текущем контексте не найден *pgxpool.Pool.
func IsAdminCurrent ¶
IsAdminCurrent проверяет, является ли текущий аутентифицированный пользователь администратором. Проверка включает два этапа:
- наличие роли "admin" в JWT-клеймах;
- подтверждение статуса администратора через вызов authhttp.IsAdmin с использованием пула БД.
Если клеймы отсутствуют, роль не совпадает или возникает ошибка при проверке в БД — возвращает false.
Параметры:
- c: контекст Gin с данными запроса и внедрённым пулом соединений к PostgreSQL.
Возвращает:
- bool: true, если пользователь — действующий администратор; иначе false.
Паникует если в текущем контексте не найден *pgxpool.Pool.
func MustGetPgxPool ¶
MustGetPgxPool извлекает пул соединений к PostgreSQL из контекста Gin или паникует, если он не установлен.
Гарантирует возврат валидного *pgxpool.Pool. Предназначен для использования в функциях, которым обязательно требуется доступ к базе данных. Если пул не найден в контексте — вызывает panic с сообщением о критической ошибке.
Возвращаемое значение:
- Указатель на *pgxpool.Pool, готовый к использованию для выполнения SQL-запросов.
func SetPgxPool ¶
SetPgxPool сохраняет пул соединений к PostgreSQL (*pgxpool.Pool) в контексте Gin.
Используется для внедрения пула БД в запрос, чтобы он был доступен в middleware, хендлерах и вспомогательных функциях, таким как IsAdminAny или IsAdminCurrent. Должен вызываться на раннем этапе обработки запроса, например, через middleware или в рамках инициализации роутера.
Параметры:
- c: контекст Gin, в который будет сохранён пул соединений.
- pool: указатель на *pgxpool.Pool, полученный при инициализации подключения к базе данных.
Types ¶
type IAuthUser ¶
type IAuthUser interface {
// contains filtered or unexported methods
}
IAuthUser — интерфейс, описывающий методы для получения данных аутентифицированного пользователя из JWT-токена. Реализуется типом *universalAuthUser и используется в middleware, хендлерах и сервисах для безопасного доступа к данным пользователя. Все методы, возвращающие значение и ошибку, не паникуют при отсутствии данных — вместо этого возвращают соответствующую ошибку. Для случаев, когда данные гарантированно должны быть, предоставляются Must-методы, которые паникуют при ошибке.
Source Files
¶
- universal_auth_user.go