|
- package models
-
- import (
- "fmt"
-
- "code.gitea.io/gitea/modules/timeutil"
- )
-
- type RoleType string
-
- const (
- TechProgramAdmin RoleType = "TechProgramAdmin"
- RewardPointAdmin RoleType = "RewardPointAdmin"
- MonitorAdmin RoleType = "MonitorAdmin"
- Subscriber RoleType = "Subscriber"
- )
-
- type Role struct {
- Type RoleType
- Name string
- Description string
- }
-
- type UserRole struct {
- ID int64 `xorm:"pk autoincr"`
- UserId int64 `xorm:"INDEX UNIQUE(uq_user_role)"`
- RoleType RoleType `xorm:"UNIQUE(uq_user_role)"`
- CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
- }
-
- func NewUserRole(r UserRole) (int64, error) {
- return x.Insert(&r)
- }
- func DeleteUserRole(roleType RoleType, userId int64) (int64, error) {
- return x.Where("role_type = ? and user_id = ?", roleType, userId).Delete(&UserRole{})
- }
-
- func GetUserRoleByUserAndRole(userId int64, roleType RoleType) (*UserRole, error) {
- r := &UserRole{}
- has, err := x.Where("role_type = ? and user_id = ?", roleType, userId).Get(r)
- if err != nil {
- return nil, err
- } else if !has {
- return nil, ErrRecordNotExist{}
- }
- return r, nil
- }
-
- func GetUserRoleList(userId int64) ([]UserRole, error) {
- r := make([]UserRole, 0)
- err := x.Where("user_id = ?", userId).Find(&r)
- if err != nil {
- return nil, err
- }
- return r, nil
- }
-
- func GetRoleByCode(code string) (*Role, error) {
- r := &Role{}
- has, err := x.Where("code = ?", code).Get(r)
- if err != nil {
- return nil, err
- } else if !has {
- return nil, ErrRecordNotExist{}
- }
- return r, nil
- }
-
- type ErrRoleNotExists struct {
- }
-
- func IsErrRoleNotExists(err error) bool {
- _, ok := err.(ErrRoleNotExists)
- return ok
- }
-
- func (err ErrRoleNotExists) Error() string {
- return fmt.Sprintf("role is not exists")
- }
-
- type OperateRoleReq struct {
- UserName string `json:"user_name" binding:"Required"`
- RoleType RoleType `json:"role_type" binding:"Required"`
- }
|