mirror of https://gitee.com/answerdev/answer.git
Merge branch 'feat/1.0.7/short-id' into test
This commit is contained in:
commit
13733a226b
|
@ -41,7 +41,7 @@ func (vc *VoteController) VoteUp(ctx *gin.Context) {
|
||||||
}
|
}
|
||||||
req.ObjectID = uid.DeShortID(req.ObjectID)
|
req.ObjectID = uid.DeShortID(req.ObjectID)
|
||||||
req.UserID = middleware.GetLoginUserIDFromContext(ctx)
|
req.UserID = middleware.GetLoginUserIDFromContext(ctx)
|
||||||
can, err := vc.rankService.CheckVotePermission(ctx, req.UserID, req.ObjectID, true)
|
can, _, err := vc.rankService.CheckVotePermission(ctx, req.UserID, req.ObjectID, true)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
handler.HandleResponse(ctx, err, nil)
|
handler.HandleResponse(ctx, err, nil)
|
||||||
return
|
return
|
||||||
|
@ -78,7 +78,7 @@ func (vc *VoteController) VoteDown(ctx *gin.Context) {
|
||||||
}
|
}
|
||||||
req.ObjectID = uid.DeShortID(req.ObjectID)
|
req.ObjectID = uid.DeShortID(req.ObjectID)
|
||||||
req.UserID = middleware.GetLoginUserIDFromContext(ctx)
|
req.UserID = middleware.GetLoginUserIDFromContext(ctx)
|
||||||
can, err := vc.rankService.CheckVotePermission(ctx, req.UserID, req.ObjectID, false)
|
can, _, err := vc.rankService.CheckVotePermission(ctx, req.UserID, req.ObjectID, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
handler.HandleResponse(ctx, err, nil)
|
handler.HandleResponse(ctx, err, nil)
|
||||||
return
|
return
|
||||||
|
|
|
@ -235,6 +235,7 @@ func (qs *QuestionService) AddQuestion(ctx context.Context, req *schema.Question
|
||||||
|
|
||||||
tagNameList := make([]string, 0)
|
tagNameList := make([]string, 0)
|
||||||
for _, tag := range req.Tags {
|
for _, tag := range req.Tags {
|
||||||
|
tag.SlugName = strings.ReplaceAll(tag.SlugName, " ", "-")
|
||||||
tagNameList = append(tagNameList, tag.SlugName)
|
tagNameList = append(tagNameList, tag.SlugName)
|
||||||
}
|
}
|
||||||
Tags, tagerr := qs.tagCommon.GetTagListByNames(ctx, tagNameList)
|
Tags, tagerr := qs.tagCommon.GetTagListByNames(ctx, tagNameList)
|
||||||
|
@ -495,6 +496,7 @@ func (qs *QuestionService) UpdateQuestion(ctx context.Context, req *schema.Quest
|
||||||
tagNameList := make([]string, 0)
|
tagNameList := make([]string, 0)
|
||||||
oldtagNameList := make([]string, 0)
|
oldtagNameList := make([]string, 0)
|
||||||
for _, tag := range req.Tags {
|
for _, tag := range req.Tags {
|
||||||
|
tag.SlugName = strings.ReplaceAll(tag.SlugName, " ", "-")
|
||||||
tagNameList = append(tagNameList, tag.SlugName)
|
tagNameList = append(tagNameList, tag.SlugName)
|
||||||
}
|
}
|
||||||
for _, tag := range oldTags {
|
for _, tag := range oldTags {
|
||||||
|
|
|
@ -90,7 +90,7 @@ func (rs *RankService) CheckOperationPermission(ctx context.Context, userID stri
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
can = rs.checkUserRank(ctx, userInfo.ID, userInfo.Rank, PermissionPrefix+action)
|
can, _ = rs.checkUserRank(ctx, userInfo.ID, userInfo.Rank, PermissionPrefix+action)
|
||||||
return can, nil
|
return can, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ func (rs *RankService) CheckOperationPermissions(ctx context.Context, userID str
|
||||||
can[idx] = true
|
can[idx] = true
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
meetRank := rs.checkUserRank(ctx, userInfo.ID, userInfo.Rank, PermissionPrefix+action)
|
meetRank, _ := rs.checkUserRank(ctx, userInfo.ID, userInfo.Rank, PermissionPrefix+action)
|
||||||
can[idx] = meetRank
|
can[idx] = meetRank
|
||||||
}
|
}
|
||||||
return can, nil
|
return can, nil
|
||||||
|
@ -141,22 +141,22 @@ func (rs *RankService) CheckOperationObjectOwner(ctx context.Context, userID, ob
|
||||||
|
|
||||||
// CheckVotePermission verify that the user has vote permission
|
// CheckVotePermission verify that the user has vote permission
|
||||||
func (rs *RankService) CheckVotePermission(ctx context.Context, userID, objectID string, voteUp bool) (
|
func (rs *RankService) CheckVotePermission(ctx context.Context, userID, objectID string, voteUp bool) (
|
||||||
can bool, err error) {
|
can bool, rank int, err error) {
|
||||||
if len(userID) == 0 || len(objectID) == 0 {
|
if len(userID) == 0 || len(objectID) == 0 {
|
||||||
return false, nil
|
return false, 0, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// get the rank of the current user
|
// get the rank of the current user
|
||||||
userInfo, exist, err := rs.userCommon.GetUserBasicInfoByID(ctx, userID)
|
userInfo, exist, err := rs.userCommon.GetUserBasicInfoByID(ctx, userID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return can, err
|
return can, 0, err
|
||||||
}
|
}
|
||||||
if !exist {
|
if !exist {
|
||||||
return can, nil
|
return can, 0, nil
|
||||||
}
|
}
|
||||||
objectInfo, err := rs.objectInfoService.GetInfo(ctx, objectID)
|
objectInfo, err := rs.objectInfoService.GetInfo(ctx, objectID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return can, err
|
return can, 0, err
|
||||||
}
|
}
|
||||||
action := ""
|
action := ""
|
||||||
switch objectInfo.ObjectType {
|
switch objectInfo.ObjectType {
|
||||||
|
@ -179,13 +179,13 @@ func (rs *RankService) CheckVotePermission(ctx context.Context, userID, objectID
|
||||||
action = permission.CommentVoteDown
|
action = permission.CommentVoteDown
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
meetRank, rank := rs.checkUserRank(ctx, userInfo.ID, userInfo.Rank, PermissionPrefix+action)
|
||||||
powerMapping := rs.getUserPowerMapping(ctx, userID)
|
powerMapping := rs.getUserPowerMapping(ctx, userID)
|
||||||
if powerMapping[action] {
|
if powerMapping[action] {
|
||||||
return true, nil
|
return true, rank, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
meetRank := rs.checkUserRank(ctx, userInfo.ID, userInfo.Rank, PermissionPrefix+action)
|
return meetRank, rank, nil
|
||||||
return meetRank, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// getUserPowerMapping get user power mapping
|
// getUserPowerMapping get user power mapping
|
||||||
|
@ -210,19 +210,19 @@ func (rs *RankService) getUserPowerMapping(ctx context.Context, userID string) (
|
||||||
|
|
||||||
// CheckRankPermission verify that the user meets the prestige criteria
|
// CheckRankPermission verify that the user meets the prestige criteria
|
||||||
func (rs *RankService) checkUserRank(ctx context.Context, userID string, userRank int, action string) (
|
func (rs *RankService) checkUserRank(ctx context.Context, userID string, userRank int, action string) (
|
||||||
can bool) {
|
can bool, rank int) {
|
||||||
// get the amount of rank required for the current operation
|
// get the amount of rank required for the current operation
|
||||||
requireRank, err := rs.configRepo.GetInt(action)
|
requireRank, err := rs.configRepo.GetInt(action)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error(err)
|
log.Error(err)
|
||||||
return false
|
return false, requireRank
|
||||||
}
|
}
|
||||||
if userRank < requireRank || requireRank < 0 {
|
if userRank < requireRank || requireRank < 0 {
|
||||||
log.Debugf("user %s want to do action %s, but rank %d < %d",
|
log.Debugf("user %s want to do action %s, but rank %d < %d",
|
||||||
userID, action, userRank, requireRank)
|
userID, action, userRank, requireRank)
|
||||||
return false
|
return false, requireRank
|
||||||
}
|
}
|
||||||
return true
|
return true, requireRank
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetRankPersonalWithPage get personal comment list page
|
// GetRankPersonalWithPage get personal comment list page
|
||||||
|
|
|
@ -200,6 +200,7 @@ func (ts *TagCommonService) ExistRecommend(ctx context.Context, tags []*schema.T
|
||||||
}
|
}
|
||||||
tagNames := make([]string, 0)
|
tagNames := make([]string, 0)
|
||||||
for _, item := range tags {
|
for _, item := range tags {
|
||||||
|
item.SlugName = strings.ReplaceAll(item.SlugName, " ", "-")
|
||||||
tagNames = append(tagNames, item.SlugName)
|
tagNames = append(tagNames, item.SlugName)
|
||||||
}
|
}
|
||||||
list, err := ts.GetTagListByNames(ctx, tagNames)
|
list, err := ts.GetTagListByNames(ctx, tagNames)
|
||||||
|
@ -233,7 +234,7 @@ func (ts *TagCommonService) AddTag(ctx context.Context, req *schema.AddTagReq) (
|
||||||
return nil, errors.BadRequest(reason.TagAlreadyExist)
|
return nil, errors.BadRequest(reason.TagAlreadyExist)
|
||||||
}
|
}
|
||||||
tagInfo := &entity.Tag{
|
tagInfo := &entity.Tag{
|
||||||
SlugName: req.SlugName,
|
SlugName: strings.ReplaceAll(req.SlugName, " ", "-"),
|
||||||
DisplayName: req.DisplayName,
|
DisplayName: req.DisplayName,
|
||||||
OriginalText: req.OriginalText,
|
OriginalText: req.OriginalText,
|
||||||
ParsedText: req.ParsedText,
|
ParsedText: req.ParsedText,
|
||||||
|
@ -557,7 +558,7 @@ func (ts *TagCommonService) ObjectChangeTag(ctx context.Context, objectTagData *
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
item := &entity.Tag{}
|
item := &entity.Tag{}
|
||||||
item.SlugName = tag.SlugName
|
item.SlugName = strings.ReplaceAll(tag.SlugName, " ", "-")
|
||||||
item.DisplayName = tag.DisplayName
|
item.DisplayName = tag.DisplayName
|
||||||
item.OriginalText = tag.OriginalText
|
item.OriginalText = tag.OriginalText
|
||||||
item.ParsedText = tag.ParsedText
|
item.ParsedText = tag.ParsedText
|
||||||
|
|
Loading…
Reference in New Issue