@@ -90,7 +90,7 @@ func (rs *RankService) CheckOperationPermission(ctx context.Context, userID stri
90
90
}
91
91
}
92
92
93
- can = rs .checkUserRank (ctx , userInfo .ID , userInfo .Rank , PermissionPrefix + action )
93
+ can , _ = rs .checkUserRank (ctx , userInfo .ID , userInfo .Rank , PermissionPrefix + action )
94
94
return can , nil
95
95
}
96
96
@@ -117,7 +117,7 @@ func (rs *RankService) CheckOperationPermissions(ctx context.Context, userID str
117
117
can [idx ] = true
118
118
continue
119
119
}
120
- meetRank := rs .checkUserRank (ctx , userInfo .ID , userInfo .Rank , PermissionPrefix + action )
120
+ meetRank , _ := rs .checkUserRank (ctx , userInfo .ID , userInfo .Rank , PermissionPrefix + action )
121
121
can [idx ] = meetRank
122
122
}
123
123
return can , nil
@@ -141,22 +141,22 @@ func (rs *RankService) CheckOperationObjectOwner(ctx context.Context, userID, ob
141
141
142
142
// CheckVotePermission verify that the user has vote permission
143
143
func (rs * RankService ) CheckVotePermission (ctx context.Context , userID , objectID string , voteUp bool ) (
144
- can bool , err error ) {
144
+ can bool , rank int , err error ) {
145
145
if len (userID ) == 0 || len (objectID ) == 0 {
146
- return false , nil
146
+ return false , 0 , nil
147
147
}
148
148
149
149
// get the rank of the current user
150
150
userInfo , exist , err := rs .userCommon .GetUserBasicInfoByID (ctx , userID )
151
151
if err != nil {
152
- return can , err
152
+ return can , 0 , err
153
153
}
154
154
if ! exist {
155
- return can , nil
155
+ return can , 0 , nil
156
156
}
157
157
objectInfo , err := rs .objectInfoService .GetInfo (ctx , objectID )
158
158
if err != nil {
159
- return can , err
159
+ return can , 0 , err
160
160
}
161
161
action := ""
162
162
switch objectInfo .ObjectType {
@@ -179,13 +179,13 @@ func (rs *RankService) CheckVotePermission(ctx context.Context, userID, objectID
179
179
action = permission .CommentVoteDown
180
180
}
181
181
}
182
+ meetRank , rank := rs .checkUserRank (ctx , userInfo .ID , userInfo .Rank , PermissionPrefix + action )
182
183
powerMapping := rs .getUserPowerMapping (ctx , userID )
183
184
if powerMapping [action ] {
184
- return true , nil
185
+ return true , rank , nil
185
186
}
186
187
187
- meetRank := rs .checkUserRank (ctx , userInfo .ID , userInfo .Rank , PermissionPrefix + action )
188
- return meetRank , nil
188
+ return meetRank , rank , nil
189
189
}
190
190
191
191
// getUserPowerMapping get user power mapping
@@ -210,19 +210,19 @@ func (rs *RankService) getUserPowerMapping(ctx context.Context, userID string) (
210
210
211
211
// CheckRankPermission verify that the user meets the prestige criteria
212
212
func (rs * RankService ) checkUserRank (ctx context.Context , userID string , userRank int , action string ) (
213
- can bool ) {
213
+ can bool , rank int ) {
214
214
// get the amount of rank required for the current operation
215
215
requireRank , err := rs .configRepo .GetInt (action )
216
216
if err != nil {
217
217
log .Error (err )
218
- return false
218
+ return false , requireRank
219
219
}
220
220
if userRank < requireRank || requireRank < 0 {
221
221
log .Debugf ("user %s want to do action %s, but rank %d < %d" ,
222
222
userID , action , userRank , requireRank )
223
- return false
223
+ return false , requireRank
224
224
}
225
- return true
225
+ return true , requireRank
226
226
}
227
227
228
228
// GetRankPersonalWithPage get personal comment list page
0 commit comments