Feat: WebDAV account management

This commit is contained in:
HFO4
2020-02-18 12:10:28 +08:00
parent 663b827a1d
commit 86889e2fac
6 changed files with 148 additions and 21 deletions

View File

@@ -1,6 +1,8 @@
package model
import "github.com/jinzhu/gorm"
import (
"github.com/jinzhu/gorm"
)
// Webdav 应用账户
type Webdav struct {
@@ -11,9 +13,29 @@ type Webdav struct {
Root string `gorm:"type:text"` // 根目录
}
// Create 创建账户
func (webdav *Webdav) Create() (uint, error) {
if err := DB.Create(webdav).Error; err != nil {
return 0, err
}
return webdav.ID, nil
}
// GetWebdavByPassword 根据密码和用户查找Webdav应用
func GetWebdavByPassword(password string, uid uint) (*Webdav, error) {
webdav := &Webdav{}
res := DB.Where("user_id = ? and password = ?", uid, password).First(webdav)
return webdav, res.Error
}
// ListWebDAVAccounts 列出用户的所有账号
func ListWebDAVAccounts(uid uint) []Webdav {
var accounts []Webdav
DB.Where("user_id = ?", uid).Order("created_at desc").Find(&accounts)
return accounts
}
// DeleteWebDAVAccountByID 根据账户ID和UID删除账户
func DeleteWebDAVAccountByID(id, uid uint) {
DB.Where("user_id = ? and id = ?", uid, id).Delete(&Webdav{})
}