Files
alist/internal/db/permission.go
2025-05-23 16:22:49 +08:00

54 lines
1.6 KiB
Go

package db
import (
"github.com/alist-org/alist/v3/internal/model"
"github.com/pkg/errors"
)
func CreatePermission(p *model.Permission) error {
return errors.WithStack(db.Create(p).Error)
}
func UpdatePermission(p *model.Permission) error {
return errors.WithStack(db.Save(p).Error)
}
func GetPermissions(pageIndex, pageSize int) (permissions []model.Permission, count int64, err error) {
permissionDB := db.Model(&model.Permission{})
if err := permissionDB.Count(&count).Error; err != nil {
return nil, 0, errors.Wrapf(err, "failed get permissions count")
}
if err := permissionDB.Order(columnName("id")).Offset((pageIndex - 1) * pageSize).Limit(pageSize).Find(&permissions).Error; err != nil {
return nil, 0, errors.Wrapf(err, "failed get find permissions")
}
return permissions, count, nil
}
func DeletePermissionById(id uint) error {
return errors.WithStack(db.Delete(&model.Permission{}, id).Error)
}
func GetPermissionById(id uint) (*model.Permission, error) {
var p model.Permission
if err := db.First(&p, id).Error; err != nil {
return nil, errors.Wrapf(err, "failed get permission by id %d", id)
}
return &p, nil
}
func GetPermissionByIds(ids []uint) ([]model.Permission, error) {
var p []model.Permission
if err := db.Where("id in (?)", ids).First(&p).Error; err != nil {
return nil, errors.Wrapf(err, "failed get permission by ids %v", ids)
}
return p, nil
}
func GetPermissionByName(name string) (*model.Permission, error) {
var p model.Permission
if err := db.Where("name = ?", name).First(&p).Error; err != nil {
return nil, errors.Wrapf(err, "failed get permission by name %v", name)
}
return &p, nil
}