package userPermission import ( "github.com/NyaaPantsu/nyaa/db" "github.com/NyaaPantsu/nyaa/model" "github.com/NyaaPantsu/nyaa/util/log" ) // HasAdmin checks that user has an admin permission. func HasAdmin(user *model.User) bool { return user.IsModerator() } // 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. // TODO: Inline this (won't go do this for us?) func CurrentUserIdentical(user *model.User, userID uint) bool { return user.ID == userID } // NeedsCaptcha : Check if a user needs captcha func NeedsCaptcha(user *model.User) bool { // Trusted members & Moderators don't return !(user.IsTrusted() || user.IsModerator()) } // GetRole : Get the status/role of a user func GetRole(user *model.User) string { switch user.Status { case model.UserStatusBanned: return "Banned" case model.UserStatusMember: return "Member" case model.UserStatusTrusted: return "Trusted Member" case model.UserStatusModerator: return "Moderator" } return "Member" } // IsFollower : Check if a user is following another 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 }