From edcea7fcf3d4c21782aeb9e439f65dd723664a16 Mon Sep 17 00:00:00 2001 From: David Oduneye Date: Thu, 1 Feb 2024 21:11:14 -0500 Subject: [PATCH] ran gofumpt -w . --- backend/src/auth/tokens.go | 2 +- backend/src/config/config.go | 16 +++---- backend/src/controllers/auth.go | 8 ++-- backend/src/controllers/user.go | 1 - backend/src/database/db.go | 8 ++-- backend/src/middleware/auth.go | 2 +- backend/src/middleware/club.go | 2 +- backend/src/middleware/middleware.go | 4 +- backend/src/middleware/user.go | 7 ++- backend/src/models/club.go | 2 +- backend/src/models/membership.go | 10 ++-- backend/src/services/auth.go | 4 +- backend/src/types/permissions.go | 70 ++++++++++++++-------------- backend/src/utilities/response.go | 1 - backend/tests/api/auth_test.go | 20 ++++---- 15 files changed, 77 insertions(+), 80 deletions(-) diff --git a/backend/src/auth/tokens.go b/backend/src/auth/tokens.go index 3c8195338..642afee34 100644 --- a/backend/src/auth/tokens.go +++ b/backend/src/auth/tokens.go @@ -152,7 +152,7 @@ func GetRoleFromToken(tokenString string) (*string, error) { if !ok || !token.Valid { return nil, &errors.FailedToValidateAccessToken } - + return &claims.Role, nil } diff --git a/backend/src/config/config.go b/backend/src/config/config.go index a87ca616a..799dcb4b8 100644 --- a/backend/src/config/config.go +++ b/backend/src/config/config.go @@ -12,7 +12,7 @@ type Settings struct { Application ApplicationSettings `yaml:"application"` Database DatabaseSettings `yaml:"database"` SuperUser SuperUserSettings `yaml:"superuser"` - Auth AuthSettings `yaml:"authsecret"` + Auth AuthSettings `yaml:"authsecret"` } type ProductionSettings struct { @@ -65,10 +65,10 @@ type SuperUserSettings struct { } type AuthSettings struct { - AccessToken string `yaml:"accesstoken"` - RefreshToken string `yaml:"refreshtoken"` - AcessTokenExpiry uint `yaml:"accesstokenexpiry"` - RefreshTokenExpiry uint `yaml:"refreshtokenexpiry"` + AccessToken string `yaml:"accesstoken"` + RefreshToken string `yaml:"refreshtoken"` + AcessTokenExpiry uint `yaml:"accesstokenexpiry"` + RefreshTokenExpiry uint `yaml:"refreshtokenexpiry"` } type Environment string @@ -160,9 +160,9 @@ func GetConfiguration(path string) (Settings, error) { Password: os.Getenv(fmt.Sprintf("%sPASSWORD", superUserPrefix)), }, Auth: AuthSettings{ - AccessToken: os.Getenv(fmt.Sprintf("%sACCESS_TOKEN", authSecretPrefix)), - RefreshToken: os.Getenv(fmt.Sprintf("%sREFRESH_TOKEN", authSecretPrefix)), - AcessTokenExpiry: uint(authAccessExpiryInt), + AccessToken: os.Getenv(fmt.Sprintf("%sACCESS_TOKEN", authSecretPrefix)), + RefreshToken: os.Getenv(fmt.Sprintf("%sREFRESH_TOKEN", authSecretPrefix)), + AcessTokenExpiry: uint(authAccessExpiryInt), RefreshTokenExpiry: uint(authRefreshExpiryInt), }, }, nil diff --git a/backend/src/controllers/auth.go b/backend/src/controllers/auth.go index 2fa42a37c..129fa1dde 100644 --- a/backend/src/controllers/auth.go +++ b/backend/src/controllers/auth.go @@ -38,7 +38,7 @@ func (a *AuthController) Me(c *fiber.Ctx) error { if err != nil { return err.FiberError(c) } - + user, err := a.authService.Me(claims.Issuer) if err != nil { return err.FiberError(c) @@ -91,7 +91,7 @@ func (a *AuthController) Login(c *fiber.Ctx) error { // @ID refresh-user // @Tags user // @Accept json -// @Produce json +// @Produce json // @Success 200 {object} string "success" // @Failure 401 {string} string "failed to refresh access token" // @Router /api/v1/auth/refresh [get] @@ -140,10 +140,10 @@ func (a *AuthController) Logout(c *fiber.Ctx) error { // TODO: Redis a.blacklist = append(a.blacklist, accessTokenValue) a.blacklist = append(a.blacklist, refreshTokenValue) - + // Expire and clear the cookies c.Cookie(auth.ExpireCookie("access_token")) c.Cookie(auth.ExpireCookie("refresh_token")) return utilities.FiberMessage(c, fiber.StatusOK, "success") -} \ No newline at end of file +} diff --git a/backend/src/controllers/user.go b/backend/src/controllers/user.go index d3a24a4ce..5b4bcfe94 100644 --- a/backend/src/controllers/user.go +++ b/backend/src/controllers/user.go @@ -138,7 +138,6 @@ func (u *UserController) DeleteUser(c *fiber.Ctx) error { return c.SendStatus(fiber.StatusNoContent) } - func (u *UserController) GetUserTags(c *fiber.Ctx) error { tags, err := u.userService.GetUserTags(c.Params("uid")) if err != nil { diff --git a/backend/src/database/db.go b/backend/src/database/db.go index edceaf962..32014e066 100644 --- a/backend/src/database/db.go +++ b/backend/src/database/db.go @@ -106,7 +106,7 @@ func createSuperUser(settings config.Settings, db *gorm.DB) error { if err := tx.Create(&superUser).Error; err != nil { tx.Rollback() return err - } + } superClub := models.Club{ Name: "SAC", @@ -126,9 +126,9 @@ func createSuperUser(settings config.Settings, db *gorm.DB) error { } membership := models.Membership{ - ClubID: superClub.ID, - UserID: superUser.ID, - MembershipType: models.MembershipTypeAdmin, + ClubID: superClub.ID, + UserID: superUser.ID, + MembershipType: models.MembershipTypeAdmin, } if err := tx.Create(&membership).Error; err != nil { diff --git a/backend/src/middleware/auth.go b/backend/src/middleware/auth.go index 9abff0aab..0900eeb1e 100644 --- a/backend/src/middleware/auth.go +++ b/backend/src/middleware/auth.go @@ -57,4 +57,4 @@ func (m *MiddlewareService) Authorize(requiredPermissions ...types.Permission) f return c.Next() } -} \ No newline at end of file +} diff --git a/backend/src/middleware/club.go b/backend/src/middleware/club.go index 6bb4b96a0..c8529415e 100644 --- a/backend/src/middleware/club.go +++ b/backend/src/middleware/club.go @@ -44,4 +44,4 @@ func (m *MiddlewareService) ClubAuthorizeById(c *fiber.Ctx) error { } return errors.Unauthorized.FiberError(c) -} \ No newline at end of file +} diff --git a/backend/src/middleware/middleware.go b/backend/src/middleware/middleware.go index 590a13ff7..97107b9bb 100644 --- a/backend/src/middleware/middleware.go +++ b/backend/src/middleware/middleware.go @@ -8,7 +8,7 @@ import ( ) type MiddlewareInterface interface { - ClubAuthorizeById(c *fiber.Ctx) error + ClubAuthorizeById(c *fiber.Ctx) error UserAuthorizeById(c *fiber.Ctx) error Authenticate(c *fiber.Ctx) error Authorize(requiredPermissions ...types.Permission) func(c *fiber.Ctx) error @@ -24,4 +24,4 @@ func NewMiddlewareService(db *gorm.DB, validate *validator.Validate) *Middleware DB: db, Validate: validate, } -} \ No newline at end of file +} diff --git a/backend/src/middleware/user.go b/backend/src/middleware/user.go index 4946a8dc5..38ee0e3e0 100644 --- a/backend/src/middleware/user.go +++ b/backend/src/middleware/user.go @@ -19,20 +19,19 @@ func (m *MiddlewareService) UserAuthorizeById(c *fiber.Ctx) error { return err } - claims, ok := token.Claims.(*types.CustomClaims) if !ok || !token.Valid { return errors.FailedToValidateAccessToken.FiberError(c) } - + issuerIDAsUUID, err := utilities.ValidateID(claims.Issuer) if err != nil { return errors.FailedToParseUUID.FiberError(c) } - + if issuerIDAsUUID.String() == idAsUUID.String() { return c.Next() } return errors.Unauthorized.FiberError(c) -} \ No newline at end of file +} diff --git a/backend/src/models/club.go b/backend/src/models/club.go index b266dc0ae..919d30fb6 100644 --- a/backend/src/models/club.go +++ b/backend/src/models/club.go @@ -84,4 +84,4 @@ func (c *Club) AfterCreate(tx *gorm.DB) (err error) { func (c *Club) AfterDelete(tx *gorm.DB) (err error) { tx.Model(&c).Update("num_members", c.NumMembers-1) return -} \ No newline at end of file +} diff --git a/backend/src/models/membership.go b/backend/src/models/membership.go index b6db07bf9..5ffc69d34 100644 --- a/backend/src/models/membership.go +++ b/backend/src/models/membership.go @@ -20,11 +20,11 @@ func (Membership) TableName() string { type Membership struct { Model - UserID uuid.UUID `gorm:"type:uuid;not null" json:"user_id" validate:"required,uuid4"` - ClubID uuid.UUID `gorm:"type:uuid;not null" json:"club_id" validate:"required,uuid4"` - + UserID uuid.UUID `gorm:"type:uuid;not null" json:"user_id" validate:"required,uuid4"` + ClubID uuid.UUID `gorm:"type:uuid;not null" json:"club_id" validate:"required,uuid4"` + Club *Club `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"-" validate:"-"` User *User `gorm:"constraint:OnUpdate:CASCADE,OnDelete:CASCADE;" json:"-" validate:"-"` - + MembershipType MembershipType `gorm:"type:varchar(255);not null;default:member" json:"membership_type" validate:"required,oneof=member admin"` -} \ No newline at end of file +} diff --git a/backend/src/services/auth.go b/backend/src/services/auth.go index 45da5cb66..4c87dd7e4 100644 --- a/backend/src/services/auth.go +++ b/backend/src/services/auth.go @@ -33,7 +33,7 @@ func (a *AuthService) Me(id string) (*models.User, *errors.Error) { if idErr != nil { return nil, idErr } - + user, err := transactions.GetUser(a.DB, *idAsUint) if err != nil { return nil, &errors.UserNotFound @@ -78,4 +78,4 @@ func (a *AuthService) GetRole(id string) (*models.UserRole, *errors.Error) { role := models.UserRole(user.Role) return &role, nil -} \ No newline at end of file +} diff --git a/backend/src/types/permissions.go b/backend/src/types/permissions.go index bbf3c2082..f99fff06f 100644 --- a/backend/src/types/permissions.go +++ b/backend/src/types/permissions.go @@ -6,57 +6,57 @@ type Permission string const ( UserReadAll Permission = "user:readAll" - UserRead Permission = "user:read" - UserWrite Permission = "user:write" - UserDelete Permission = "user:delete" + UserRead Permission = "user:read" + UserWrite Permission = "user:write" + UserDelete Permission = "user:delete" TagReadAll Permission = "tag:readAll" - TagRead Permission = "tag:read" - TagWrite Permission = "tag:write" - TagCreate Permission = "tag:create" - TagDelete Permission = "tag:delete" + TagRead Permission = "tag:read" + TagWrite Permission = "tag:write" + TagCreate Permission = "tag:create" + TagDelete Permission = "tag:delete" ClubReadAll Permission = "club:readAll" - ClubRead Permission = "club:read" - ClubWrite Permission = "club:write" - ClubCreate Permission = "club:create" - ClubDelete Permission = "club:delete" + ClubRead Permission = "club:read" + ClubWrite Permission = "club:write" + ClubCreate Permission = "club:create" + ClubDelete Permission = "club:delete" PointOfContactReadAll Permission = "pointOfContact:readAll" - PointOfContactRead Permission = "pointOfContact:read" - PointOfContactCreate Permission = "pointOfContact:create" - PointOfContactWrite Permission = "pointOfContact:write" - PointOfContactDelete Permission = "pointOfContact:delete" + PointOfContactRead Permission = "pointOfContact:read" + PointOfContactCreate Permission = "pointOfContact:create" + PointOfContactWrite Permission = "pointOfContact:write" + PointOfContactDelete Permission = "pointOfContact:delete" CommentReadAll Permission = "comment:readAll" - CommentRead Permission = "comment:read" - CommentCreate Permission = "comment:create" - CommentWrite Permission = "comment:write" - CommentDelete Permission = "comment:delete" + CommentRead Permission = "comment:read" + CommentCreate Permission = "comment:create" + CommentWrite Permission = "comment:write" + CommentDelete Permission = "comment:delete" EventReadAll Permission = "event:readAll" - EventRead Permission = "event:read" - EventWrite Permission = "event:write" - EventCreate Permission = "event:create" - EventDelete Permission = "event:delete" + EventRead Permission = "event:read" + EventWrite Permission = "event:write" + EventCreate Permission = "event:create" + EventDelete Permission = "event:delete" ContactReadAll Permission = "contact:readAll" - ContactRead Permission = "contact:read" - ContactWrite Permission = "contact:write" - ContactCreate Permission = "contact:create" - ContactDelete Permission = "contact:delete" + ContactRead Permission = "contact:read" + ContactWrite Permission = "contact:write" + ContactCreate Permission = "contact:create" + ContactDelete Permission = "contact:delete" CategoryReadAll Permission = "category:readAll" - CategoryRead Permission = "category:read" - CategoryWrite Permission = "category:write" - CategoryCreate Permission = "category:create" - CategoryDelete Permission = "category:delete" + CategoryRead Permission = "category:read" + CategoryWrite Permission = "category:write" + CategoryCreate Permission = "category:create" + CategoryDelete Permission = "category:delete" NotificationReadAll Permission = "notification:readAll" - NotificationRead Permission = "notification:read" - NotificationWrite Permission = "notification:write" - NotificationCreate Permission = "notification:create" - NotificationDelete Permission = "notification:delete" + NotificationRead Permission = "notification:read" + NotificationWrite Permission = "notification:write" + NotificationCreate Permission = "notification:create" + NotificationDelete Permission = "notification:delete" ) var rolePermissions = map[models.UserRole][]Permission{ diff --git a/backend/src/utilities/response.go b/backend/src/utilities/response.go index c3123b97c..790993135 100644 --- a/backend/src/utilities/response.go +++ b/backend/src/utilities/response.go @@ -2,7 +2,6 @@ package utilities import "github.com/gofiber/fiber/v2" - func FiberMessage(c *fiber.Ctx, statusCode int, response string) error { return c.Status(statusCode).JSON(fiber.Map{"message": response}) } diff --git a/backend/tests/api/auth_test.go b/backend/tests/api/auth_test.go index baaf193da..bf06f5fb0 100644 --- a/backend/tests/api/auth_test.go +++ b/backend/tests/api/auth_test.go @@ -9,17 +9,17 @@ import ( ) func TestCreateTokenPairSuccess(t *testing.T) { - id := "user123" - role := "admin" + id := "user123" + role := "admin" - accessToken, refreshToken, err := auth.CreateTokenPair(id, role) - if err != nil { - t.Errorf("Unexpected error: %v", err) - } + accessToken, refreshToken, err := auth.CreateTokenPair(id, role) + if err != nil { + t.Errorf("Unexpected error: %v", err) + } - if accessToken == nil || refreshToken == nil { - t.Errorf("Expected both tokens to be non-nil, got: %v, %v", accessToken, refreshToken) - } + if accessToken == nil || refreshToken == nil { + t.Errorf("Expected both tokens to be non-nil, got: %v, %v", accessToken, refreshToken) + } } func TestCreateTokenPairFailure(t *testing.T) { @@ -90,7 +90,7 @@ func TestCreateRefreshTokenFailure(t *testing.T) { } } -func TestSignTokenSuccess(t *testing.T) { +func TestSignTokenSuccess(t *testing.T) { tokenString := &jwt.Token{ Header: map[string]interface{}{ "alg": "HS256",