58 lines
1.4 KiB
Go
58 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"gorm.io/driver/postgres"
|
|
"gorm.io/gorm"
|
|
"golang.org/x/crypto/bcrypt"
|
|
)
|
|
|
|
type AppUser struct {
|
|
Userid int `gorm:"primaryKey;column:userid"`
|
|
Email string `gorm:"column:email"`
|
|
Password string `gorm:"column:password"`
|
|
Roleid int `gorm:"column:roleid"`
|
|
Authname string `gorm:"column:authname"`
|
|
}
|
|
|
|
func (AppUser) TableName() string {
|
|
return "appusers"
|
|
}
|
|
|
|
func main() {
|
|
dsn := "host=31.97.228.132 user=admin password=Package@321# dbname=logistics port=5433 sslmode=disable"
|
|
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
|
|
if err != nil {
|
|
log.Fatalf("failed to connect database: %v", err)
|
|
}
|
|
|
|
var users []AppUser
|
|
result := db.Find(&users)
|
|
if result.Error != nil {
|
|
log.Fatalf("failed to query users: %v", result.Error)
|
|
}
|
|
|
|
if len(users) == 0 {
|
|
fmt.Println("DATABASE IS EMPTY. No users found.")
|
|
// Create default admin user
|
|
hash, _ := bcrypt.GenerateFromPassword([]byte("admin123"), bcrypt.DefaultCost)
|
|
|
|
admin := AppUser{
|
|
Email: "admin@doormile.com",
|
|
Password: string(hash),
|
|
Roleid: 1, // Admin
|
|
Authname: "Super Admin",
|
|
}
|
|
if err := db.Create(&admin).Error; err != nil {
|
|
log.Fatalf("Failed to create admin: %v", err)
|
|
}
|
|
fmt.Println("SUCCESS: Created default admin: admin@doormile.com / admin123")
|
|
} else {
|
|
fmt.Printf("Found %d users:\n", len(users))
|
|
for _, u := range users {
|
|
fmt.Printf("- %s (Email: %s, RoleID: %d)\n", u.Authname, u.Email, u.Roleid)
|
|
}
|
|
}
|
|
}
|