users

package
v0.0.0-...-4a77db7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 17, 2025 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RoleMember  = "member"
	RoleStudent = "student"
)

Variables

View Source
var (
	ErrEmailInUse   = errors.New("email already in use")
	ErrWeakPassword = errors.New("password does not meet policy requirements")
	ErrInvalidLogin = errors.New("invalid email or password")
	ErrInvalidRole  = errors.New("invalid role")
)

Functions

func IsValidRole

func IsValidRole(role string) bool

func RegisterUserRoutes

func RegisterUserRoutes(e *echo.Echo, db *gorm.DB, jwtSecret string, jwtTTL time.Duration)

Types

type Handler

type Handler struct {
	// contains filtered or unexported fields
}

func (*Handler) Login

func (h *Handler) Login(c echo.Context) error

-------------------- Login (with limiter) --------------------

func (*Handler) Signup

func (h *Handler) Signup(c echo.Context) error

-------------------- Signup (no limiter) --------------------

type LoginRequest

type LoginRequest struct {
	Email    string `json:"email" binding:"required,email"`
	Password string `json:"password" binding:"required"`
}

ورودیِ لاگین

type Repository

type Repository interface {
	Create(u *User) error
	FindByEmail(email string) (*User, error)
}

func NewRepository

func NewRepository(db *gorm.DB) Repository

type Service

type Service struct {
	// contains filtered or unexported fields
}

func NewService

func NewService(repo Repository) *Service

func (*Service) Login

func (s *Service) Login(email, password string) (*User, error)

Loginمتد

func (*Service) Signup

func (s *Service) Signup(name, email, password, role string) (*User, error)

Signup: قوانین ثبت‌نام

type SignupRequest

type SignupRequest struct {
	Name     string `json:"name" binding:"required"`
	Email    string `json:"email" binding:"required,email"`
	Password string `json:"password" binding:"required,min=8"`
	Role     string `json:"role" binding:"required"` // member | student

}

ورودیِ ثبت‌نام

type User

type User struct {
	ID           uint           `gorm:"primaryKey" json:"id"`
	Name         string         `gorm:"size:100;not null" json:"name"`
	Email        string         `gorm:"size:190;not null;uniqueIndex" json:"email"`
	PasswordHash string         `gorm:"size:255;not null" json:"-"`
	Role         string         `gorm:"size:20;not null;default:member" json:"role"`
	CreatedAt    time.Time      `json:"created_at"`
	UpdatedAt    time.Time      `json:"updated_at"`
	DeletedAt    gorm.DeletedAt `gorm:"index" json:"-"`
}

مدل دیتابیسی کاربر

func (User) TableName

func (User) TableName() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL