You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

user.go 1.1 kB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package db2
  2. import (
  3. cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
  4. "gorm.io/gorm"
  5. )
  6. type UserDB struct {
  7. *DB
  8. }
  9. func (db *DB) User() *UserDB {
  10. return &UserDB{DB: db}
  11. }
  12. func (db *UserDB) GetByID(ctx SQLContext, userID cdssdk.UserID) (cdssdk.User, error) {
  13. var ret cdssdk.User
  14. err := ctx.Table("User").Where("UserID = ?", userID).First(&ret).Error
  15. return ret, err
  16. }
  17. func (db *UserDB) GetByName(ctx SQLContext, name string) (cdssdk.User, error) {
  18. var ret cdssdk.User
  19. err := ctx.Table("User").Where("Name = ?", name).First(&ret).Error
  20. return ret, err
  21. }
  22. func (db *UserDB) Create(ctx SQLContext, name string) (cdssdk.User, error) {
  23. _, err := db.GetByName(ctx, name)
  24. if err == nil {
  25. return cdssdk.User{}, gorm.ErrDuplicatedKey
  26. }
  27. if err != gorm.ErrRecordNotFound {
  28. return cdssdk.User{}, err
  29. }
  30. user := cdssdk.User{Name: name}
  31. err = ctx.Table("User").Create(&user).Error
  32. return user, err
  33. }
  34. func (*UserDB) Delete(ctx SQLContext, userID cdssdk.UserID) error {
  35. return ctx.Table("User").Delete(&cdssdk.User{UserID: userID}).Error
  36. }

本项目旨在将云际存储公共基础设施化,使个人及企业可低门槛使用高效的云际存储服务(安装开箱即用云际存储客户端即可,无需关注其他组件的部署),同时支持用户灵活便捷定制云际存储的功能细节。