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
+4
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,
}
}
+1
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
}
+3
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 {
+9
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{
+5 -4
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 {
+5
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"`
+2 -1
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) {
+1
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.