init: 1.0.0

This commit is contained in:
tension
2025-04-25 12:08:29 +09:00
commit c81c9bd724
1031 changed files with 76472 additions and 0 deletions
+26
View File
@@ -0,0 +1,26 @@
package auth
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/auth"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Check user is exist
func CheckUserHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.CheckUserRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := auth.NewCheckUserLogic(c.Request.Context(), svcCtx)
resp, err := l.CheckUser(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,26 @@
package auth
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/auth"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Check user telephone is exist
func CheckUserTelephoneHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.TelephoneCheckUserRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := auth.NewCheckUserTelephoneLogic(c.Request.Context(), svcCtx)
resp, err := l.CheckUserTelephone(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,27 @@
package oauth
import (
"net/http"
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/auth/oauth"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// Apple Login Callback
func AppleLoginCallbackHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.AppleLoginCallbackRequest
if err := c.ShouldBind(&req); err != nil {
c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid request data"})
return
}
l := oauth.NewAppleLoginCallbackLogic(c, svcCtx)
err := l.AppleLoginCallback(&req, c.Request, c.Writer)
if err != nil {
result.HttpResult(c, nil, err)
}
}
}
@@ -0,0 +1,26 @@
package oauth
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/auth/oauth"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// OAuth login get token
func OAuthLoginGetTokenHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.OAuthLoginGetTokenRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := oauth.NewOAuthLoginGetTokenLogic(c.Request.Context(), svcCtx)
resp, err := l.OAuthLoginGetToken(&req, c.ClientIP(), c.Request.UserAgent())
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,26 @@
package oauth
import (
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/auth/oauth"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
)
// OAuth login
func OAuthLoginHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.OAthLoginRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := oauth.NewOAuthLoginLogic(c.Request.Context(), svcCtx)
resp, err := l.OAuthLogin(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,43 @@
package auth
import (
"time"
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/auth"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
"github.com/perfect-panel/ppanel-server/pkg/turnstile"
"github.com/perfect-panel/ppanel-server/pkg/xerr"
"github.com/pkg/errors"
)
// Reset password
func ResetPasswordHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.ResetPasswordRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
// get client ip
req.IP = c.ClientIP()
if svcCtx.Config.Verify.ResetPasswordVerify {
verifyTurns := turnstile.New(turnstile.Config{
Secret: svcCtx.Config.Verify.TurnstileSecret,
Timeout: 3 * time.Second,
})
if verify, err := verifyTurns.Verify(c, req.CfToken, req.IP); err != nil || !verify {
err = errors.Wrapf(xerr.NewErrCode(xerr.TooManyRequests), "error: %v, verify: %v", err, verify)
result.HttpResult(c, nil, err)
return
}
}
l := auth.NewResetPasswordLogic(c.Request.Context(), svcCtx)
resp, err := l.ResetPassword(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,43 @@
package auth
import (
"time"
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/auth"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
"github.com/perfect-panel/ppanel-server/pkg/turnstile"
"github.com/perfect-panel/ppanel-server/pkg/xerr"
"github.com/pkg/errors"
)
// User Telephone login
func TelephoneLoginHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.TelephoneLoginRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
// get client ip
req.IP = c.ClientIP()
if svcCtx.Config.Verify.LoginVerify {
verifyTurns := turnstile.New(turnstile.Config{
Secret: svcCtx.Config.Verify.TurnstileSecret,
Timeout: 3 * time.Second,
})
if verify, err := verifyTurns.Verify(c, req.CfToken, req.IP); err != nil || !verify {
err = errors.Wrapf(xerr.NewErrCode(xerr.TooManyRequests), "error: %v, verify: %v", err, verify)
result.HttpResult(c, nil, err)
return
}
}
l := auth.NewTelephoneLoginLogic(c, svcCtx)
resp, err := l.TelephoneLogin(&req, c.Request, c.ClientIP())
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,43 @@
package auth
import (
"time"
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/auth"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
"github.com/perfect-panel/ppanel-server/pkg/turnstile"
"github.com/perfect-panel/ppanel-server/pkg/xerr"
"github.com/pkg/errors"
)
// Reset password
func TelephoneResetPasswordHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.TelephoneResetPasswordRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
// get client ip
req.IP = c.ClientIP()
if svcCtx.Config.Verify.ResetPasswordVerify {
verifyTurns := turnstile.New(turnstile.Config{
Secret: svcCtx.Config.Verify.TurnstileSecret,
Timeout: 3 * time.Second,
})
if verify, err := verifyTurns.Verify(c.Request.Context(), req.CfToken, req.IP); err != nil || !verify {
err = errors.Wrapf(xerr.NewErrCode(xerr.TooManyRequests), "error: %v, verify: %v", err, verify)
result.HttpResult(c, nil, err)
return
}
}
l := auth.NewTelephoneResetPasswordLogic(c, svcCtx)
resp, err := l.TelephoneResetPassword(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,43 @@
package auth
import (
"time"
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/auth"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
"github.com/perfect-panel/ppanel-server/pkg/turnstile"
"github.com/perfect-panel/ppanel-server/pkg/xerr"
"github.com/pkg/errors"
)
// User Telephone register
func TelephoneUserRegisterHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.TelephoneRegisterRequest
_ = c.ShouldBind(&req)
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
// get client ip
req.IP = c.ClientIP()
if svcCtx.Config.Verify.RegisterVerify {
verifyTurns := turnstile.New(turnstile.Config{
Secret: svcCtx.Config.Verify.TurnstileSecret,
Timeout: 3 * time.Second,
})
if verify, err := verifyTurns.Verify(c, req.CfToken, req.IP); err != nil || !verify {
err = errors.Wrapf(xerr.NewErrCode(xerr.TooManyRequests), "error: %v, verify: %v", err, verify)
result.HttpResult(c, nil, err)
return
}
}
l := auth.NewTelephoneUserRegisterLogic(c.Request.Context(), svcCtx)
resp, err := l.TelephoneUserRegister(&req)
result.HttpResult(c, resp, err)
}
}
+45
View File
@@ -0,0 +1,45 @@
package auth
import (
"time"
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/auth"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
"github.com/perfect-panel/ppanel-server/pkg/turnstile"
"github.com/perfect-panel/ppanel-server/pkg/xerr"
"github.com/pkg/errors"
)
// User login
func UserLoginHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.UserLoginRequest
_ = c.ShouldBind(&req)
// get client ip
req.IP = c.ClientIP()
req.UserAgent = c.Request.UserAgent()
if svcCtx.Config.Verify.LoginVerify && !svcCtx.Config.Debug {
verifyTurns := turnstile.New(turnstile.Config{
Secret: svcCtx.Config.Verify.TurnstileSecret,
Timeout: 3 * time.Second,
})
if verify, err := verifyTurns.Verify(c, req.CfToken, req.IP); err != nil || !verify {
err = errors.Wrapf(xerr.NewErrCode(xerr.TooManyRequests), "error: %v, verify: %v", err, verify)
result.HttpResult(c, nil, err)
return
}
}
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := auth.NewUserLoginLogic(c.Request.Context(), svcCtx)
resp, err := l.UserLogin(&req)
result.HttpResult(c, resp, err)
}
}
@@ -0,0 +1,43 @@
package auth
import (
"time"
"github.com/gin-gonic/gin"
"github.com/perfect-panel/ppanel-server/internal/logic/auth"
"github.com/perfect-panel/ppanel-server/internal/svc"
"github.com/perfect-panel/ppanel-server/internal/types"
"github.com/perfect-panel/ppanel-server/pkg/result"
"github.com/perfect-panel/ppanel-server/pkg/turnstile"
"github.com/perfect-panel/ppanel-server/pkg/xerr"
"github.com/pkg/errors"
)
// User register
func UserRegisterHandler(svcCtx *svc.ServiceContext) func(c *gin.Context) {
return func(c *gin.Context) {
var req types.UserRegisterRequest
_ = c.ShouldBind(&req)
// get client ip
req.IP = c.ClientIP()
if svcCtx.Config.Verify.RegisterVerify {
verifyTurns := turnstile.New(turnstile.Config{
Secret: svcCtx.Config.Verify.TurnstileSecret,
Timeout: 3 * time.Second,
})
if verify, err := verifyTurns.Verify(c, req.CfToken, req.IP); err != nil || !verify {
result.HttpResult(c, nil, errors.Wrapf(xerr.NewErrCode(xerr.TooManyRequests), "verify error: %v", err.Error()))
return
}
}
validateErr := svcCtx.Validate(&req)
if validateErr != nil {
result.ParamErrorResult(c, validateErr)
return
}
l := auth.NewUserRegisterLogic(c.Request.Context(), svcCtx)
resp, err := l.UserRegister(&req)
result.HttpResult(c, resp, err)
}
}