feat: Peer share to group
This commit is contained in:
@@ -120,7 +120,7 @@ func (abcr *AddressBookCollectionRule) CheckForm(t *model.AddressBookCollectionR
|
|||||||
//check to_id
|
//check to_id
|
||||||
if t.Type == model.ShareAddressBookRuleTypePersonal {
|
if t.Type == model.ShareAddressBookRuleTypePersonal {
|
||||||
if t.ToId == t.UserId {
|
if t.ToId == t.UserId {
|
||||||
return "ParamsError", false
|
return "CannotShareToSelf", false
|
||||||
}
|
}
|
||||||
tou := service.AllService.UserService.InfoById(t.ToId)
|
tou := service.AllService.UserService.InfoById(t.ToId)
|
||||||
if tou.Id == 0 {
|
if tou.Id == 0 {
|
||||||
@@ -135,7 +135,7 @@ func (abcr *AddressBookCollectionRule) CheckForm(t *model.AddressBookCollectionR
|
|||||||
return "ParamsError", false
|
return "ParamsError", false
|
||||||
}
|
}
|
||||||
// 重复检查
|
// 重复检查
|
||||||
ex := service.AllService.AddressBookService.RulePersonalInfoByToIdAndCid(t.ToId, t.CollectionId)
|
ex := service.AllService.AddressBookService.RuleInfoByToIdAndCid(t.Type, t.ToId, t.CollectionId)
|
||||||
if t.Id == 0 && ex.Id > 0 {
|
if t.Id == 0 && ex.Id > 0 {
|
||||||
return "ItemExists", false
|
return "ItemExists", false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -100,21 +100,21 @@ func (abcr *AddressBookCollectionRule) CheckForm(u *model.User, t *model.Address
|
|||||||
//check to_id
|
//check to_id
|
||||||
if t.Type == model.ShareAddressBookRuleTypePersonal {
|
if t.Type == model.ShareAddressBookRuleTypePersonal {
|
||||||
if t.ToId == t.UserId {
|
if t.ToId == t.UserId {
|
||||||
return "ParamsError", false
|
return "CannotShareToSelf", false
|
||||||
}
|
}
|
||||||
tou := service.AllService.UserService.InfoById(t.ToId)
|
tou := service.AllService.UserService.InfoById(t.ToId)
|
||||||
if tou.Id == 0 {
|
if tou.Id == 0 {
|
||||||
return "ItemNotFound", false
|
return "ItemNotFound", false
|
||||||
}
|
}
|
||||||
//非管理员不能分享给非本组织用户
|
//非管理员不能分享给非本组织用户
|
||||||
if tou.GroupId != u.GroupId {
|
//if tou.GroupId != u.GroupId {
|
||||||
return "NoAccess", false
|
// return "NoAccess", false
|
||||||
}
|
//}
|
||||||
} else if t.Type == model.ShareAddressBookRuleTypeGroup {
|
} else if t.Type == model.ShareAddressBookRuleTypeGroup {
|
||||||
//非管理员不能分享给其他组
|
//非管理员不能分享给其他组
|
||||||
if t.ToId != u.GroupId {
|
//if t.ToId != u.GroupId {
|
||||||
return "NoAccess", false
|
// return "NoAccess", false
|
||||||
}
|
//}
|
||||||
|
|
||||||
tog := service.AllService.GroupService.InfoById(t.ToId)
|
tog := service.AllService.GroupService.InfoById(t.ToId)
|
||||||
if tog.Id == 0 {
|
if tog.Id == 0 {
|
||||||
@@ -124,7 +124,7 @@ func (abcr *AddressBookCollectionRule) CheckForm(u *model.User, t *model.Address
|
|||||||
return "ParamsError", false
|
return "ParamsError", false
|
||||||
}
|
}
|
||||||
// 重复检查
|
// 重复检查
|
||||||
ex := service.AllService.AddressBookService.RulePersonalInfoByToIdAndCid(t.ToId, t.CollectionId)
|
ex := service.AllService.AddressBookService.RuleInfoByToIdAndCid(t.Type, t.ToId, t.CollectionId)
|
||||||
if t.Id == 0 && ex.Id > 0 {
|
if t.Id == 0 && ex.Id > 0 {
|
||||||
return "ItemExists", false
|
return "ItemExists", false
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -296,32 +296,12 @@ func (ct *User) MyOauth(c *gin.Context) {
|
|||||||
|
|
||||||
// groupUsers
|
// groupUsers
|
||||||
func (ct *User) GroupUsers(c *gin.Context) {
|
func (ct *User) GroupUsers(c *gin.Context) {
|
||||||
q := &admin.GroupUsersQuery{}
|
aG := service.AllService.GroupService.List(1, 999, nil)
|
||||||
if err := c.ShouldBindJSON(q); err != nil {
|
aU := service.AllService.UserService.List(1, 9999, nil)
|
||||||
response.Fail(c, 101, response.TranslateMsg(c, "ParamsError")+err.Error())
|
response.Success(c, gin.H{
|
||||||
return
|
"groups": aG.Groups,
|
||||||
}
|
"users": aU.Users,
|
||||||
u := service.AllService.UserService.CurUser(c)
|
|
||||||
gid := u.GroupId
|
|
||||||
uid := u.Id
|
|
||||||
if service.AllService.UserService.IsAdmin(u) && q.UserId > 0 {
|
|
||||||
nu := service.AllService.UserService.InfoById(q.UserId)
|
|
||||||
gid = nu.GroupId
|
|
||||||
uid = q.UserId
|
|
||||||
}
|
|
||||||
res := service.AllService.UserService.List(1, 999, func(tx *gorm.DB) {
|
|
||||||
tx.Where("group_id = ?", gid)
|
|
||||||
})
|
})
|
||||||
var data []*adResp.GroupUsersPayload
|
|
||||||
for _, _u := range res.Users {
|
|
||||||
gup := &adResp.GroupUsersPayload{}
|
|
||||||
gup.FromUser(_u)
|
|
||||||
if _u.Id == uid {
|
|
||||||
gup.Status = 0
|
|
||||||
}
|
|
||||||
data = append(data, gup)
|
|
||||||
}
|
|
||||||
response.Success(c, data)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Register
|
// Register
|
||||||
|
|||||||
@@ -22,15 +22,3 @@ type UserOauthItem struct {
|
|||||||
Op string `json:"op"`
|
Op string `json:"op"`
|
||||||
Status int `json:"status"`
|
Status int `json:"status"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type GroupUsersPayload struct {
|
|
||||||
Id uint `json:"id"`
|
|
||||||
Username string `json:"username"`
|
|
||||||
Status int `json:"status"`
|
|
||||||
}
|
|
||||||
|
|
||||||
func (g *GroupUsersPayload) FromUser(user *model.User) {
|
|
||||||
g.Id = user.Id
|
|
||||||
g.Username = user.Username
|
|
||||||
g.Status = 1
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -138,3 +138,8 @@ other = "Captcha error."
|
|||||||
description = "Password login disabled."
|
description = "Password login disabled."
|
||||||
one = "Password login disabled."
|
one = "Password login disabled."
|
||||||
other = "Password login disabled."
|
other = "Password login disabled."
|
||||||
|
|
||||||
|
[CannotShareToSelf]
|
||||||
|
description = "Cannot share to self."
|
||||||
|
one = "Cannot share to self."
|
||||||
|
other = "Cannot share to self."
|
||||||
@@ -147,3 +147,8 @@ other = "Error de captcha."
|
|||||||
description = "Password login disabled."
|
description = "Password login disabled."
|
||||||
one = "Inicio de sesión con contraseña deshabilitado."
|
one = "Inicio de sesión con contraseña deshabilitado."
|
||||||
other = "Inicio de sesión con contraseña deshabilitado."
|
other = "Inicio de sesión con contraseña deshabilitado."
|
||||||
|
|
||||||
|
[CannotShareToSelf]
|
||||||
|
description = "Cannot share to self."
|
||||||
|
one = "No se puede compartir con uno mismo."
|
||||||
|
other = "No se puede compartir con uno mismo."
|
||||||
@@ -147,3 +147,8 @@ other = "Erreur de captcha."
|
|||||||
description = "Password login disabled."
|
description = "Password login disabled."
|
||||||
one = "Connexion par mot de passe désactivée."
|
one = "Connexion par mot de passe désactivée."
|
||||||
other = "Connexion par mot de passe désactivée."
|
other = "Connexion par mot de passe désactivée."
|
||||||
|
|
||||||
|
[CannotShareToSelf]
|
||||||
|
description = "Cannot share to self."
|
||||||
|
one = "Impossible de partager avec soi-même."
|
||||||
|
other = "Impossible de partager avec soi-même."
|
||||||
@@ -141,3 +141,8 @@ other = "Captcha 오류."
|
|||||||
description = "Password login disabled."
|
description = "Password login disabled."
|
||||||
one = "비밀번호 로그인이 비활성화되었습니다."
|
one = "비밀번호 로그인이 비활성화되었습니다."
|
||||||
other = "비밀번호 로그인이 비활성화되었습니다."
|
other = "비밀번호 로그인이 비활성화되었습니다."
|
||||||
|
|
||||||
|
[CannotShareToSelf]
|
||||||
|
description = "Cannot share to self."
|
||||||
|
one = "자기 자신에게 공유할 수 없습니다."
|
||||||
|
other = "자기 자신에게 공유할 수 없습니다."
|
||||||
@@ -147,3 +147,8 @@ other = "Ошибка капчи."
|
|||||||
description = "Password login disabled."
|
description = "Password login disabled."
|
||||||
one = "Вход по паролю отключен."
|
one = "Вход по паролю отключен."
|
||||||
other = "Вход по паролю отключен."
|
other = "Вход по паролю отключен."
|
||||||
|
|
||||||
|
[CannotShareToSelf]
|
||||||
|
description = "Cannot share to self."
|
||||||
|
one = "Нельзя поделиться с собой."
|
||||||
|
other = "Нельзя поделиться с собой."
|
||||||
@@ -140,3 +140,8 @@ other = "验证码错误。"
|
|||||||
description = "Password login disabled."
|
description = "Password login disabled."
|
||||||
one = "密码登录已禁用。"
|
one = "密码登录已禁用。"
|
||||||
other = "密码登录已禁用。"
|
other = "密码登录已禁用。"
|
||||||
|
|
||||||
|
[CannotShareToSelf]
|
||||||
|
description = "Cannot share to self."
|
||||||
|
one = "不能共享给自己。"
|
||||||
|
other = "不能共享给自己。"
|
||||||
@@ -140,3 +140,8 @@ other = "驗證碼錯誤。"
|
|||||||
description = "Password login disabled."
|
description = "Password login disabled."
|
||||||
one = "密碼登錄已禁用。"
|
one = "密碼登錄已禁用。"
|
||||||
other = "密碼登錄已禁用。"
|
other = "密碼登錄已禁用。"
|
||||||
|
|
||||||
|
[CannotShareToSelf]
|
||||||
|
description = "Cannot share to self."
|
||||||
|
one = "無法共享給自己。"
|
||||||
|
other = "無法共享給自己。"
|
||||||
@@ -293,8 +293,11 @@ func (s *AddressBookService) RuleInfoById(u uint) *model.AddressBookCollectionRu
|
|||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
func (s *AddressBookService) RulePersonalInfoByToIdAndCid(toid, cid uint) *model.AddressBookCollectionRule {
|
func (s *AddressBookService) RulePersonalInfoByToIdAndCid(toid, cid uint) *model.AddressBookCollectionRule {
|
||||||
|
return s.RuleInfoByToIdAndCid(model.ShareAddressBookRuleTypePersonal, toid, cid)
|
||||||
|
}
|
||||||
|
func (s *AddressBookService) RuleInfoByToIdAndCid(t int, toid, cid uint) *model.AddressBookCollectionRule {
|
||||||
p := &model.AddressBookCollectionRule{}
|
p := &model.AddressBookCollectionRule{}
|
||||||
DB.Where("type = ? and to_id = ? and collection_id = ?", model.ShareAddressBookRuleTypePersonal, toid, cid).First(p)
|
DB.Where("type = ? and to_id = ? and collection_id = ?", t, toid, cid).First(p)
|
||||||
return p
|
return p
|
||||||
}
|
}
|
||||||
func (s *AddressBookService) CreateRule(t *model.AddressBookCollectionRule) error {
|
func (s *AddressBookService) CreateRule(t *model.AddressBookCollectionRule) error {
|
||||||
|
|||||||
Reference in New Issue
Block a user