7eee47b0d3
* Use ModeratorDir variable * Rename cookieHelper to cookie_helper for consistency * Use named constant instead of literals * Fix ability to upload when uploads are disabled The old code let people upload under the right conditions when uploads were disabled. (ie: User is banned and config.AdminAreStillAllowedTo is false) * Increase timeout (fixes #517) * Fix inconsistent indentation *.{js, css} (fix #583) * Fix negative page Temporary fix. The issue was that going to a negative page caused the sql query to have a negative offset. This caused an error in the database query. We need to cleanup this code, but this will work for now. * Fix wrong PG_DATA directory due to upgrade to 9.6 * Add server status link to FAQ * Fix failing tests * Clarify group_vars/all and hosts doc * Add a wrapper to protect /mod route * Fix login page not showing form errors
52 lignes
1,4 Kio
Go
52 lignes
1,4 Kio
Go
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
|
|
}
|
|
|
|
func NeedsCaptcha(user *model.User) bool {
|
|
// Trusted members & Moderators don't
|
|
return !(user.IsTrusted() || user.IsModerator())
|
|
}
|
|
|
|
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"
|
|
}
|
|
|
|
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
|
|
}
|