heritage-api/mysql/permission-mysql.go

40 lines
955 B
Go
Raw Normal View History

2026-03-12 09:28:19 +00:00
package mysql
import "myschools.me/heritage/heritage-api/model"
func permissionDefined(permissionCode *string) (bool, error) {
db, err := newDB()
if err != nil {
return false, err
}
var count int64
if err := db.Model(&model.Permission{}).Where("code = ?", *permissionCode).Count(&count).Error; err != nil {
return false, err
}
return count > 0, nil
}
func roleHasPermission(roleID, permissionCode *string) (bool, error) {
db, err := newDB()
if err != nil {
return false, err
}
var count int64
if err := db.Model(&model.Permission{}).
Where("role_id = ? AND (code = ? OR code = ?)", *roleID, *permissionCode, "*").
Count(&count).Error; err != nil {
return false, err
}
return count > 0, nil
}
func PermissionDefined(permissionCode *string) (bool, error) {
return permissionDefined(permissionCode)
}
func RoleHasPermission(roleID, permissionCode *string) (bool, error) {
return roleHasPermission(roleID, permissionCode)
}