This commit is contained in:
aditya.siregar 2024-07-12 02:29:18 +07:00
parent 04a89c5508
commit 7ea809cc09
9 changed files with 60 additions and 5 deletions

View File

@ -26,6 +26,7 @@ type UserDB struct {
RoleName string `gorm:"column:role_name" json:"role_name"`
PartnerID *int64 `gorm:"column:partner_id" json:"partner_id"`
SiteID *int64 `gorm:"column:site_id" json:"site_id"`
SiteName string `gorm:"column:name" json:"site_name"`
PartnerName string `gorm:"column:partner_name" json:"partner_name"`
PartnerStatus string `gorm:"column:partner_status" json:"partner_status"`
CreatedAt time.Time `gorm:"column:created_at" json:"created_at"`
@ -52,6 +53,7 @@ func (u *UserDB) ToUser() *User {
PartnerID: u.PartnerID,
PartnerName: u.PartnerName,
SiteID: u.SiteID,
SiteName: u.SiteName,
}
return userEntity
@ -88,6 +90,8 @@ func (u *UserDB) ToUserAuthenticate(signedToken string) *AuthenticateUser {
PartnerID: u.PartnerID,
PartnerName: u.PartnerName,
PartnerStatus: u.PartnerStatus,
SiteID: u.SiteID,
SiteName: u.SiteName,
}
}

View File

@ -9,6 +9,7 @@ type JWTAuthClaims struct {
Role int `json:"role"`
PartnerID int64 `json:"partner_id"`
SiteID int64 `json:"site_id"`
SiteName string `json:"site_name"`
jwt.StandardClaims
}

View File

@ -22,6 +22,7 @@ type User struct {
RoleName string
PartnerID *int64
SiteID *int64
SiteName string
PartnerName string
}
@ -33,6 +34,8 @@ type AuthenticateUser struct {
PartnerID *int64
PartnerName string
PartnerStatus string
SiteID *int64
SiteName string
}
type UserRoleDB struct {

View File

@ -52,6 +52,7 @@ func (h *AuthHandler) AuthLogin(c *gin.Context) {
}
var partner *response.Partner
var site *response.SiteName
if authUser.RoleID != role.SuperAdmin {
partner = &response.Partner{
@ -61,6 +62,13 @@ func (h *AuthHandler) AuthLogin(c *gin.Context) {
}
}
if authUser.RoleID == role.Casheer {
site = &response.SiteName{
ID: authUser.SiteID,
Name: authUser.SiteName,
}
}
resp := response.LoginResponse{
Token: authUser.Token,
Partner: partner,
@ -69,6 +77,7 @@ func (h *AuthHandler) AuthLogin(c *gin.Context) {
ID: int64(authUser.RoleID),
Role: authUser.RoleName,
},
Site: site,
}
c.JSON(http.StatusOK, response.BaseResponse{

View File

@ -1,10 +1,11 @@
package response
type LoginResponse struct {
Token string `json:"token"`
Name string `json:"name"`
Role Role `json:"role"`
Partner *Partner `json:"partner"`
Token string `json:"token"`
Name string `json:"name"`
Role Role `json:"role"`
Partner *Partner `json:"partner"`
Site *SiteName `json:"site,omitempty"`
}
type Role struct {

View File

@ -19,6 +19,11 @@ type Site struct {
UpdatedAt string `json:"updated_at"`
}
type SiteName struct {
ID *int64 `json:"id"`
Name string `json:"name"`
}
type SiteList struct {
Sites []Site `json:"sites"`
Total int64 `json:"total"`

View File

@ -26,11 +26,12 @@ func (r *AuthRepository) CheckExistsUserAccount(ctx context.Context, email strin
err := r.db.
Table("users").
Select("users.*, user_roles.role_id, user_roles.partner_id, user_roles.site_id, roles.role_name, partners.name as partner_name, partners.status as partner_status").
Select("users.*, user_roles.role_id, user_roles.partner_id, user_roles.site_id, sites.name, roles.role_name, partners.name as partner_name, partners.status as partner_status").
Where("users.email = ?", email).
Joins("left join user_roles on users.id = user_roles.user_id").
Joins("left join roles on user_roles.role_id = roles.role_id").
Joins("left join partners on user_roles.partner_id = partners.id").
Joins("left join sites on user_roles.site_id = sites.id").
First(&user).Error
if errors.Is(err, gorm.ErrRecordNotFound) {

View File

@ -69,6 +69,7 @@ func (c *CryptoImpl) GenerateJWT(user *entity.User) (string, error) {
Role: int(user.RoleID),
PartnerID: partnerID,
SiteID: siteID,
SiteName: user.SiteName,
}
token, err := jwt.

View File

@ -0,0 +1,30 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: furtuna-backend
namespace: altru-staging
annotations:
kubernetes.io/ingress.class: "nginx"
cert-manager.io/cluster-issuer: "letsencrypt-prod"
nginx.ingress.kubernetes.io/ingress-class: "nginx"
nginx.ingress.kubernetes.io/enable-cors: "true"
nginx.ingress.kubernetes.io/cors-allow-origin: "*"
nginx.ingress.kubernetes.io/cors-allow-methods: "GET, POST, OPTIONS"
nginx.ingress.kubernetes.io/cors-allow-headers: "Content-Type, Authorization, x-access-token"
nginx.ingress.kubernetes.io/cors-allow-credentials: "true"
spec:
rules:
- host: "furtuna-backend.app-dev.altru.id"
http:
paths:
- pathType: Prefix
path: /
backend:
service:
name: furtuna-backend
port:
number: 3300
tls:
- hosts:
- "furtuna-backend.app-dev.altru.id"
secretName: furtuna-backend-app-dev-biz-id-tls