diff --git a/.gitignore b/.gitignore index 1627ce4..d03b338 100644 --- a/.gitignore +++ b/.gitignore @@ -40,7 +40,6 @@ go.work !go.sum !go.mod #!*.sql - !README.md !LICENSE diff --git a/compose.yml b/compose.yml index 69dbf22..0a0344f 100644 --- a/compose.yml +++ b/compose.yml @@ -1,10 +1,10 @@ services: app: - build: . + build: ./go-backend container_name: carsharingBackend ports: - "8080:8080" volumes: - - ./configs/config.json:/root/configs/config.json:ro - - ./data/db.sqlite3:/root/data/db.sqlite3 - - ./templates:/root/templates:ro + - ./go-backend/configs/config.json:/root/configs/config.json:ro + - ./go-backend/data/db.sqlite3:/root/data/db.sqlite3 + - ./go-backend/templates:/root/templates:ro diff --git a/frontend/src/lib/components/SubscriptionEditForm.svelte b/frontend/src/lib/components/SubscriptionEditForm.svelte index 17ff19f..89e6d12 100644 --- a/frontend/src/lib/components/SubscriptionEditForm.svelte +++ b/frontend/src/lib/components/SubscriptionEditForm.svelte @@ -127,7 +127,7 @@
diff --git a/Dockerfile b/go-backend/Dockerfile similarity index 100% rename from Dockerfile rename to go-backend/Dockerfile diff --git a/cmd/membership/main.go b/go-backend/cmd/membership/main.go similarity index 100% rename from cmd/membership/main.go rename to go-backend/cmd/membership/main.go diff --git a/configs/config.template.json b/go-backend/configs/config.template.json similarity index 95% rename from configs/config.template.json rename to go-backend/configs/config.template.json index 6a9fa59..3a7a7b2 100644 --- a/configs/config.template.json +++ b/go-backend/configs/config.template.json @@ -18,7 +18,7 @@ "MailPath": "templates/email", "HTMLPath": "templates/html", "StaticPath": "templates/css", - "LogoURI": "/images/LOGO.png" + "LogoURI": "/assets/LOGO.png" }, "auth": { "APIKey": "" diff --git a/go-backend/data/README.md b/go-backend/data/README.md new file mode 100644 index 0000000..7ee0f59 --- /dev/null +++ b/go-backend/data/README.md @@ -0,0 +1 @@ +Database Folder according to the project structure and the template configuration diff --git a/go.mod b/go-backend/go.mod similarity index 100% rename from go.mod rename to go-backend/go.mod diff --git a/go.sum b/go-backend/go.sum similarity index 100% rename from go.sum rename to go-backend/go.sum diff --git a/internal/config/config.go b/go-backend/internal/config/config.go similarity index 100% rename from internal/config/config.go rename to go-backend/internal/config/config.go diff --git a/internal/constants/constants.go b/go-backend/internal/constants/constants.go similarity index 100% rename from internal/constants/constants.go rename to go-backend/internal/constants/constants.go diff --git a/internal/controllers/SQLInjection_test.go b/go-backend/internal/controllers/SQLInjection_test.go similarity index 100% rename from internal/controllers/SQLInjection_test.go rename to go-backend/internal/controllers/SQLInjection_test.go diff --git a/internal/controllers/XSS_test.go b/go-backend/internal/controllers/XSS_test.go similarity index 100% rename from internal/controllers/XSS_test.go rename to go-backend/internal/controllers/XSS_test.go diff --git a/internal/controllers/contactController.go b/go-backend/internal/controllers/contactController.go similarity index 100% rename from internal/controllers/contactController.go rename to go-backend/internal/controllers/contactController.go diff --git a/internal/controllers/contactController_test.go b/go-backend/internal/controllers/contactController_test.go similarity index 100% rename from internal/controllers/contactController_test.go rename to go-backend/internal/controllers/contactController_test.go diff --git a/internal/controllers/controllers_test.go b/go-backend/internal/controllers/controllers_test.go similarity index 100% rename from internal/controllers/controllers_test.go rename to go-backend/internal/controllers/controllers_test.go diff --git a/internal/controllers/licenceController.go b/go-backend/internal/controllers/licenceController.go similarity index 100% rename from internal/controllers/licenceController.go rename to go-backend/internal/controllers/licenceController.go diff --git a/internal/controllers/membershipController.go b/go-backend/internal/controllers/membershipController.go similarity index 100% rename from internal/controllers/membershipController.go rename to go-backend/internal/controllers/membershipController.go diff --git a/internal/controllers/membershipController_test.go b/go-backend/internal/controllers/membershipController_test.go similarity index 100% rename from internal/controllers/membershipController_test.go rename to go-backend/internal/controllers/membershipController_test.go diff --git a/internal/controllers/user_Password.go b/go-backend/internal/controllers/user_Password.go similarity index 89% rename from internal/controllers/user_Password.go rename to go-backend/internal/controllers/user_Password.go index 3f7b743..8160688 100644 --- a/internal/controllers/user_Password.go +++ b/go-backend/internal/controllers/user_Password.go @@ -72,7 +72,9 @@ func (uc *UserController) ChangePassword(c *gin.Context) { verification, err := uc.Service.VerifyUser(&input.Token, &constants.VerificationTypes.Password) if err != nil || uint(userIDint) != verification.UserID { if err == errors.ErrAlreadyVerified { - utils.RespondWithError(c, err, "User already verified", http.StatusConflict, errors.Responses.Fields.User, errors.Responses.Keys.PasswordAlreadyChanged) + utils.RespondWithError(c, err, "User already changed password", http.StatusConflict, errors.Responses.Fields.User, errors.Responses.Keys.PasswordAlreadyChanged) + } else if err.Error() == "record not found" { + utils.RespondWithError(c, err, "Couldn't find verification. This is most probably a outdated token.", http.StatusGone, errors.Responses.Fields.User, errors.Responses.Keys.NoAuthToken) } else { utils.RespondWithError(c, err, "Couldn't verify user", http.StatusInternalServerError, errors.Responses.Fields.General, errors.Responses.Keys.InternalServerError) } diff --git a/internal/controllers/user_controller.go b/go-backend/internal/controllers/user_controller.go similarity index 99% rename from internal/controllers/user_controller.go rename to go-backend/internal/controllers/user_controller.go index 3134419..304f9fb 100644 --- a/internal/controllers/user_controller.go +++ b/go-backend/internal/controllers/user_controller.go @@ -256,7 +256,7 @@ func (uc *UserController) LoginHandler(c *gin.Context) { func (uc *UserController) RegisterUser(c *gin.Context) { var regData RegistrationData - + logger.Error.Printf("registering user...") if err := c.ShouldBindJSON(®Data); err != nil { utils.HandleValidationError(c, err) return diff --git a/internal/controllers/user_controller_test.go b/go-backend/internal/controllers/user_controller_test.go similarity index 100% rename from internal/controllers/user_controller_test.go rename to go-backend/internal/controllers/user_controller_test.go diff --git a/internal/database/db.go b/go-backend/internal/database/db.go similarity index 100% rename from internal/database/db.go rename to go-backend/internal/database/db.go diff --git a/internal/middlewares/api.go b/go-backend/internal/middlewares/api.go similarity index 100% rename from internal/middlewares/api.go rename to go-backend/internal/middlewares/api.go diff --git a/internal/middlewares/api_test.go b/go-backend/internal/middlewares/api_test.go similarity index 100% rename from internal/middlewares/api_test.go rename to go-backend/internal/middlewares/api_test.go diff --git a/internal/middlewares/auth.go b/go-backend/internal/middlewares/auth.go similarity index 100% rename from internal/middlewares/auth.go rename to go-backend/internal/middlewares/auth.go diff --git a/internal/middlewares/auth_test.go b/go-backend/internal/middlewares/auth_test.go similarity index 100% rename from internal/middlewares/auth_test.go rename to go-backend/internal/middlewares/auth_test.go diff --git a/internal/middlewares/cors.go b/go-backend/internal/middlewares/cors.go similarity index 88% rename from internal/middlewares/cors.go rename to go-backend/internal/middlewares/cors.go index 1516792..422d49c 100644 --- a/internal/middlewares/cors.go +++ b/go-backend/internal/middlewares/cors.go @@ -13,7 +13,7 @@ func CORSMiddleware() gin.HandlerFunc { logger.Info.Print("Applying CORS") return cors.New(cors.Config{ AllowOrigins: strings.Split(config.Site.AllowOrigins, ","), - AllowMethods: []string{"GET", "POST", "PATCH", "PUT"}, + AllowMethods: []string{"GET", "POST", "PATCH", "PUT", "OPTIONS"}, AllowHeaders: []string{"Origin", "Content-Type", "Accept", "Authorization", "X-Requested-With", "X-CSRF-Token"}, ExposeHeaders: []string{"Content-Length"}, AllowCredentials: true, diff --git a/internal/middlewares/cors_test.go b/go-backend/internal/middlewares/cors_test.go similarity index 100% rename from internal/middlewares/cors_test.go rename to go-backend/internal/middlewares/cors_test.go diff --git a/internal/middlewares/csp.go b/go-backend/internal/middlewares/csp.go similarity index 96% rename from internal/middlewares/csp.go rename to go-backend/internal/middlewares/csp.go index ddd435b..9c072b2 100644 --- a/internal/middlewares/csp.go +++ b/go-backend/internal/middlewares/csp.go @@ -9,6 +9,7 @@ import ( ) func CSPMiddleware() gin.HandlerFunc { + logger.Error.Printf("applying CSP") return func(c *gin.Context) { policy := "default-src 'self'; " + "script-src 'self' 'unsafe-inline'" + diff --git a/internal/middlewares/csp_test.go b/go-backend/internal/middlewares/csp_test.go similarity index 100% rename from internal/middlewares/csp_test.go rename to go-backend/internal/middlewares/csp_test.go diff --git a/internal/middlewares/headers.go b/go-backend/internal/middlewares/headers.go similarity index 87% rename from internal/middlewares/headers.go rename to go-backend/internal/middlewares/headers.go index 7246059..94782e6 100644 --- a/internal/middlewares/headers.go +++ b/go-backend/internal/middlewares/headers.go @@ -1,8 +1,13 @@ package middlewares -import "github.com/gin-gonic/gin" +import ( + "GoMembership/pkg/logger" + + "github.com/gin-gonic/gin" +) func SecurityHeadersMiddleware() gin.HandlerFunc { + logger.Error.Printf("applying headers") return func(c *gin.Context) { c.Header("X-Frame-Options", "DENY") c.Header("X-Content-Type-Options", "nosniff") diff --git a/internal/middlewares/rate_limit.go b/go-backend/internal/middlewares/rate_limit.go similarity index 100% rename from internal/middlewares/rate_limit.go rename to go-backend/internal/middlewares/rate_limit.go diff --git a/internal/middlewares/rate_limit_test.go b/go-backend/internal/middlewares/rate_limit_test.go similarity index 100% rename from internal/middlewares/rate_limit_test.go rename to go-backend/internal/middlewares/rate_limit_test.go diff --git a/internal/models/bank_account.go b/go-backend/internal/models/bank_account.go similarity index 100% rename from internal/models/bank_account.go rename to go-backend/internal/models/bank_account.go diff --git a/internal/models/consents.go b/go-backend/internal/models/consents.go similarity index 100% rename from internal/models/consents.go rename to go-backend/internal/models/consents.go diff --git a/internal/models/drivers_licence.go b/go-backend/internal/models/drivers_licence.go similarity index 100% rename from internal/models/drivers_licence.go rename to go-backend/internal/models/drivers_licence.go diff --git a/internal/models/membership.go b/go-backend/internal/models/membership.go similarity index 100% rename from internal/models/membership.go rename to go-backend/internal/models/membership.go diff --git a/internal/models/subscription_model.go b/go-backend/internal/models/subscription_model.go similarity index 100% rename from internal/models/subscription_model.go rename to go-backend/internal/models/subscription_model.go diff --git a/internal/models/user.go b/go-backend/internal/models/user.go similarity index 100% rename from internal/models/user.go rename to go-backend/internal/models/user.go diff --git a/internal/models/verification.go b/go-backend/internal/models/verification.go similarity index 100% rename from internal/models/verification.go rename to go-backend/internal/models/verification.go diff --git a/internal/repositories/banking_repository.go b/go-backend/internal/repositories/banking_repository.go similarity index 100% rename from internal/repositories/banking_repository.go rename to go-backend/internal/repositories/banking_repository.go diff --git a/internal/repositories/consents_repository.go b/go-backend/internal/repositories/consents_repository.go similarity index 100% rename from internal/repositories/consents_repository.go rename to go-backend/internal/repositories/consents_repository.go diff --git a/internal/repositories/licence_repository.go b/go-backend/internal/repositories/licence_repository.go similarity index 100% rename from internal/repositories/licence_repository.go rename to go-backend/internal/repositories/licence_repository.go diff --git a/internal/repositories/membership_repository.go b/go-backend/internal/repositories/membership_repository.go similarity index 100% rename from internal/repositories/membership_repository.go rename to go-backend/internal/repositories/membership_repository.go diff --git a/internal/repositories/subscription_model_repository.go b/go-backend/internal/repositories/subscription_model_repository.go similarity index 100% rename from internal/repositories/subscription_model_repository.go rename to go-backend/internal/repositories/subscription_model_repository.go diff --git a/internal/repositories/user_permissions.go b/go-backend/internal/repositories/user_permissions.go similarity index 100% rename from internal/repositories/user_permissions.go rename to go-backend/internal/repositories/user_permissions.go diff --git a/internal/repositories/user_repository.go b/go-backend/internal/repositories/user_repository.go similarity index 100% rename from internal/repositories/user_repository.go rename to go-backend/internal/repositories/user_repository.go diff --git a/internal/repositories/user_verification.go b/go-backend/internal/repositories/user_verification.go similarity index 100% rename from internal/repositories/user_verification.go rename to go-backend/internal/repositories/user_verification.go diff --git a/internal/routes/routes.go b/go-backend/internal/routes/routes.go similarity index 100% rename from internal/routes/routes.go rename to go-backend/internal/routes/routes.go diff --git a/internal/server/server.go b/go-backend/internal/server/server.go similarity index 100% rename from internal/server/server.go rename to go-backend/internal/server/server.go diff --git a/internal/services/bank_account_service.go b/go-backend/internal/services/bank_account_service.go similarity index 100% rename from internal/services/bank_account_service.go rename to go-backend/internal/services/bank_account_service.go diff --git a/internal/services/consent_service.go b/go-backend/internal/services/consent_service.go similarity index 100% rename from internal/services/consent_service.go rename to go-backend/internal/services/consent_service.go diff --git a/internal/services/email_service.go b/go-backend/internal/services/email_service.go similarity index 100% rename from internal/services/email_service.go rename to go-backend/internal/services/email_service.go diff --git a/internal/services/licence_service.go b/go-backend/internal/services/licence_service.go similarity index 100% rename from internal/services/licence_service.go rename to go-backend/internal/services/licence_service.go diff --git a/internal/services/membership_service.go b/go-backend/internal/services/membership_service.go similarity index 100% rename from internal/services/membership_service.go rename to go-backend/internal/services/membership_service.go diff --git a/internal/services/user_password.go b/go-backend/internal/services/user_password.go similarity index 100% rename from internal/services/user_password.go rename to go-backend/internal/services/user_password.go diff --git a/internal/services/user_permissions.go b/go-backend/internal/services/user_permissions.go similarity index 100% rename from internal/services/user_permissions.go rename to go-backend/internal/services/user_permissions.go diff --git a/internal/services/user_service.go b/go-backend/internal/services/user_service.go similarity index 100% rename from internal/services/user_service.go rename to go-backend/internal/services/user_service.go diff --git a/internal/services/user_verification.go b/go-backend/internal/services/user_verification.go similarity index 100% rename from internal/services/user_verification.go rename to go-backend/internal/services/user_verification.go diff --git a/internal/utils/cookies.go b/go-backend/internal/utils/cookies.go similarity index 100% rename from internal/utils/cookies.go rename to go-backend/internal/utils/cookies.go diff --git a/internal/utils/crypto.go b/go-backend/internal/utils/crypto.go similarity index 100% rename from internal/utils/crypto.go rename to go-backend/internal/utils/crypto.go diff --git a/internal/utils/mock_smtp.go b/go-backend/internal/utils/mock_smtp.go similarity index 100% rename from internal/utils/mock_smtp.go rename to go-backend/internal/utils/mock_smtp.go diff --git a/internal/utils/priviliges.go b/go-backend/internal/utils/priviliges.go similarity index 100% rename from internal/utils/priviliges.go rename to go-backend/internal/utils/priviliges.go diff --git a/internal/utils/priviliges_test.go b/go-backend/internal/utils/priviliges_test.go similarity index 100% rename from internal/utils/priviliges_test.go rename to go-backend/internal/utils/priviliges_test.go diff --git a/internal/utils/response_handler.go b/go-backend/internal/utils/response_handler.go similarity index 100% rename from internal/utils/response_handler.go rename to go-backend/internal/utils/response_handler.go diff --git a/internal/validation/DriversLicence_validation.go b/go-backend/internal/validation/DriversLicence_validation.go similarity index 100% rename from internal/validation/DriversLicence_validation.go rename to go-backend/internal/validation/DriversLicence_validation.go diff --git a/internal/validation/bankAccount_validation.go b/go-backend/internal/validation/bankAccount_validation.go similarity index 100% rename from internal/validation/bankAccount_validation.go rename to go-backend/internal/validation/bankAccount_validation.go diff --git a/internal/validation/general_validation.go b/go-backend/internal/validation/general_validation.go similarity index 100% rename from internal/validation/general_validation.go rename to go-backend/internal/validation/general_validation.go diff --git a/internal/validation/membership_validation.go b/go-backend/internal/validation/membership_validation.go similarity index 100% rename from internal/validation/membership_validation.go rename to go-backend/internal/validation/membership_validation.go diff --git a/internal/validation/setup.go b/go-backend/internal/validation/setup.go similarity index 100% rename from internal/validation/setup.go rename to go-backend/internal/validation/setup.go diff --git a/internal/validation/subscription_validation.go b/go-backend/internal/validation/subscription_validation.go similarity index 100% rename from internal/validation/subscription_validation.go rename to go-backend/internal/validation/subscription_validation.go diff --git a/internal/validation/user_validation.go b/go-backend/internal/validation/user_validation.go similarity index 100% rename from internal/validation/user_validation.go rename to go-backend/internal/validation/user_validation.go diff --git a/pkg/errors/errors.go b/go-backend/pkg/errors/errors.go similarity index 97% rename from pkg/errors/errors.go rename to go-backend/pkg/errors/errors.go index 75989fb..0961ff2 100644 --- a/pkg/errors/errors.go +++ b/go-backend/pkg/errors/errors.go @@ -14,6 +14,7 @@ type ValidationKeys struct { InvalidUserID string PasswordAlreadyChanged string UserDisabled string + NoAuthToken string } type ValidationFields struct { @@ -63,6 +64,7 @@ var Responses = struct { Duplicate: "server.validation.duplicate", UserDisabled: "server.validation.user_disabled", PasswordAlreadyChanged: "server.validation.password_already_changed", + NoAuthToken: "server.error.no_auth_token", }, Fields: ValidationFields{ General: "general", diff --git a/pkg/logger/logger.go b/go-backend/pkg/logger/logger.go similarity index 100% rename from pkg/logger/logger.go rename to go-backend/pkg/logger/logger.go diff --git a/templates/css/style.css b/go-backend/templates/css/style.css similarity index 100% rename from templates/css/style.css rename to go-backend/templates/css/style.css diff --git a/templates/email/mail_change_password.tmpl b/go-backend/templates/email/mail_change_password.tmpl similarity index 100% rename from templates/email/mail_change_password.tmpl rename to go-backend/templates/email/mail_change_password.tmpl diff --git a/templates/email/mail_change_password.txt.tmpl b/go-backend/templates/email/mail_change_password.txt.tmpl similarity index 100% rename from templates/email/mail_change_password.txt.tmpl rename to go-backend/templates/email/mail_change_password.txt.tmpl diff --git a/templates/email/mail_contact_form.tmpl b/go-backend/templates/email/mail_contact_form.tmpl similarity index 100% rename from templates/email/mail_contact_form.tmpl rename to go-backend/templates/email/mail_contact_form.tmpl diff --git a/templates/email/mail_contact_form.txt.tmpl b/go-backend/templates/email/mail_contact_form.txt.tmpl similarity index 100% rename from templates/email/mail_contact_form.txt.tmpl rename to go-backend/templates/email/mail_contact_form.txt.tmpl diff --git a/templates/email/mail_registration.tmpl b/go-backend/templates/email/mail_registration.tmpl similarity index 100% rename from templates/email/mail_registration.tmpl rename to go-backend/templates/email/mail_registration.tmpl diff --git a/templates/email/mail_registration.txt.tmpl b/go-backend/templates/email/mail_registration.txt.tmpl similarity index 100% rename from templates/email/mail_registration.txt.tmpl rename to go-backend/templates/email/mail_registration.txt.tmpl diff --git a/templates/email/mail_verification.tmpl b/go-backend/templates/email/mail_verification.tmpl similarity index 100% rename from templates/email/mail_verification.tmpl rename to go-backend/templates/email/mail_verification.tmpl diff --git a/templates/email/mail_verification.txt.tmpl b/go-backend/templates/email/mail_verification.txt.tmpl similarity index 100% rename from templates/email/mail_verification.txt.tmpl rename to go-backend/templates/email/mail_verification.txt.tmpl diff --git a/templates/email/mail_welcome.tmpl b/go-backend/templates/email/mail_welcome.tmpl similarity index 100% rename from templates/email/mail_welcome.tmpl rename to go-backend/templates/email/mail_welcome.tmpl diff --git a/templates/email/mail_welcome.txt.tmpl b/go-backend/templates/email/mail_welcome.txt.tmpl similarity index 100% rename from templates/email/mail_welcome.txt.tmpl rename to go-backend/templates/email/mail_welcome.txt.tmpl diff --git a/templates/html/contactForm_reply.html b/go-backend/templates/html/contactForm_reply.html similarity index 100% rename from templates/html/contactForm_reply.html rename to go-backend/templates/html/contactForm_reply.html diff --git a/templates/html/verification_error.html b/go-backend/templates/html/verification_error.html similarity index 100% rename from templates/html/verification_error.html rename to go-backend/templates/html/verification_error.html diff --git a/templates/html/verification_success.html b/go-backend/templates/html/verification_success.html similarity index 100% rename from templates/html/verification_success.html rename to go-backend/templates/html/verification_success.html