Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMHSanaei <mc.sanaei@gmail.com>2023-02-09 22:18:06 +0300
committerMHSanaei <mc.sanaei@gmail.com>2023-02-09 22:18:06 +0300
commitb73e4173a3c1e69e02ad6b4e3b43e425e57a5be9 (patch)
treed95d2f5e903d97082e11eb9f9023c165b1bde388 /web/service/user.go
3x-ui
Diffstat (limited to 'web/service/user.go')
-rw-r--r--web/service/user.go73
1 files changed, 73 insertions, 0 deletions
diff --git a/web/service/user.go b/web/service/user.go
new file mode 100644
index 00000000..e4e7572d
--- /dev/null
+++ b/web/service/user.go
@@ -0,0 +1,73 @@
+package service
+
+import (
+ "errors"
+ "x-ui/database"
+ "x-ui/database/model"
+ "x-ui/logger"
+
+ "gorm.io/gorm"
+)
+
+type UserService struct {
+}
+
+func (s *UserService) GetFirstUser() (*model.User, error) {
+ db := database.GetDB()
+
+ user := &model.User{}
+ err := db.Model(model.User{}).
+ First(user).
+ Error
+ if err != nil {
+ return nil, err
+ }
+ return user, nil
+}
+
+func (s *UserService) CheckUser(username string, password string) *model.User {
+ db := database.GetDB()
+
+ user := &model.User{}
+ err := db.Model(model.User{}).
+ Where("username = ? and password = ?", username, password).
+ First(user).
+ Error
+ if err == gorm.ErrRecordNotFound {
+ return nil
+ } else if err != nil {
+ logger.Warning("check user err:", err)
+ return nil
+ }
+ return user
+}
+
+func (s *UserService) UpdateUser(id int, username string, password string) error {
+ db := database.GetDB()
+ return db.Model(model.User{}).
+ Where("id = ?", id).
+ Update("username", username).
+ Update("password", password).
+ Error
+}
+
+func (s *UserService) UpdateFirstUser(username string, password string) error {
+ if username == "" {
+ return errors.New("username can not be empty")
+ } else if password == "" {
+ return errors.New("password can not be empty")
+ }
+ db := database.GetDB()
+ user := &model.User{}
+ err := db.Model(model.User{}).First(user).Error
+ if database.IsNotFound(err) {
+ user.Username = username
+ user.Password = password
+ return db.Model(model.User{}).Create(user).Error
+ } else if err != nil {
+ return err
+ }
+ user.Username = username
+ user.Password = password
+ return db.Save(user).Error
+}