40 lines
955 B
Go
40 lines
955 B
Go
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)
|
|
}
|