50 lignes
Pas d'EOL
1,2 Kio
Go
50 lignes
Pas d'EOL
1,2 Kio
Go
package userPermission
|
|
|
|
import (
|
|
"github.com/ewhal/nyaa/model"
|
|
"github.com/ewhal/nyaa/util/log"
|
|
"github.com/ewhal/nyaa/db"
|
|
)
|
|
|
|
// HasAdmin checks that user has an admin permission.
|
|
func HasAdmin(user *model.User) bool {
|
|
return user.Status == 2
|
|
}
|
|
|
|
// CurrentOrAdmin check that user has admin permission or user is the current user.
|
|
func CurrentOrAdmin(user *model.User, userId uint) bool {
|
|
log.Debugf("user.Id == userId %d %d %s", user.Id, userId, user.Id == userId)
|
|
return (HasAdmin(user) || user.Id == userId)
|
|
}
|
|
|
|
// CurrentUserIdentical check that userId is same as current user's Id.
|
|
func CurrentUserIdentical(user *model.User, userId uint) (bool) {
|
|
if user.Id != userId {
|
|
return false
|
|
}
|
|
|
|
return true
|
|
}
|
|
|
|
func GetRole(user *model.User) string {
|
|
switch user.Status {
|
|
case -1 :
|
|
return "Banned"
|
|
case 0 :
|
|
return "Member"
|
|
case 1 :
|
|
return "Trusted Member"
|
|
case 2 :
|
|
return "Moderator"
|
|
}
|
|
return "Member"
|
|
}
|
|
|
|
func IsFollower(user *model.User, currentUser *model.User) bool {
|
|
var likingUserCount int
|
|
db.ORM.Model(&model.UserFollows{}).Where("user_id = ? and following = ?", user.Id, currentUser.Id).Count(&likingUserCount)
|
|
if likingUserCount != 0 {
|
|
return true
|
|
}
|
|
return false
|
|
} |