user

package
v0.6.28 Latest Latest
Warning

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

Go to latest
Published: Mar 13, 2024 License: Apache-2.0 Imports: 33 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AllEnvironment string = ""
	AllNamespace   string = ""
	AllGroup       string = ""
	AllKind        string = ""
	AllResource    string = ""
	AllWorkflow    string = ""
)
View Source
const (
	ConcurrentRequestLockError   = "there is an ongoing request for this user, please try after some time"
	ConcurrentRequestUnlockError = "cannot block request that is not in process"
)

Variables

View Source
var (
	CookieExpirationTime int
	JwtExpirationTime    int
)
View Source
var Claims struct {
	Email    string   `json:"email"`
	Verified bool     `json:"email_verified"`
	Groups   []string `json:"groups"`
	Token    string   `json:"token"`
	Roles    []string `json:"roles"`
	jwt.StandardClaims
}

Functions

func WhitelistChecker

func WhitelistChecker(url string) bool

Types

type CheckResponse

type CheckResponse struct {
	Enabled bool     `json:"enabled"`
	Roles   []string `json:"roles"`
}

type DexConfig

type DexConfig struct {
	RedirectURL          string `env:"DEX_RURL" envDefault:"http://127.0.0.1:8080/callback"`
	ClientID             string `env:"DEX_CID" envDefault:"example-app"`
	ClientSecret         string `env:"DEX_SECRET" `
	DexURL               string `env:"DEX_URL" `
	DexJwtKey            string `env:"DEX_JWTKEY" `
	CStoreKey            string `env:"DEX_CSTOREKEY"`
	CookieExpirationTime int    `env:"CExpirationTime" envDefault:"600"`
	JwtExpirationTime    int    `env:"JwtExpirationTime" envDefault:"120"`
}

func GetConfig

func GetConfig() (*DexConfig, error)

type RbacRoleService

type RbacRoleService interface {
	GetAllDefaultRoles() ([]*bean.RbacRoleDto, error)
}

type RbacRoleServiceImpl

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

func NewRbacRoleServiceImpl

func NewRbacRoleServiceImpl(logger *zap.SugaredLogger,
	rbacRoleDataRepository repository.RbacRoleDataRepository) *RbacRoleServiceImpl

func (*RbacRoleServiceImpl) GetAllDefaultRoles

func (impl *RbacRoleServiceImpl) GetAllDefaultRoles() ([]*bean.RbacRoleDto, error)

type RoleGroupService

type RoleGroupService interface {
	CreateRoleGroup(request *bean.RoleGroup) (*bean.RoleGroup, error)
	UpdateRoleGroup(request *bean.RoleGroup, token string, managerAuth func(resource, token string, object string) bool) (*bean.RoleGroup, error)
	FetchDetailedRoleGroups() ([]*bean.RoleGroup, error)
	FetchRoleGroupsById(id int32) (*bean.RoleGroup, error)
	FetchRoleGroups() ([]*bean.RoleGroup, error)
	FetchRoleGroupsByName(name string) ([]*bean.RoleGroup, error)
	DeleteRoleGroup(model *bean.RoleGroup) (bool, error)
	FetchRolesForGroups(groupNames []string) ([]*bean.RoleFilter, error)
}

type RoleGroupServiceImpl

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

func NewRoleGroupServiceImpl

func NewRoleGroupServiceImpl(userAuthRepository repository.UserAuthRepository,
	logger *zap.SugaredLogger, userRepository repository.UserRepository,
	roleGroupRepository repository.RoleGroupRepository, userCommonService UserCommonService) *RoleGroupServiceImpl

func (RoleGroupServiceImpl) CreateOrUpdateRoleGroupForClusterEntity

func (impl RoleGroupServiceImpl) CreateOrUpdateRoleGroupForClusterEntity(roleFilter bean.RoleFilter, userId int32, model *repository.RoleGroup, existingRoles map[int]*repository.RoleGroupRoleMapping, token string, managerAuth func(resource string, token string, object string) bool, tx *pg.Tx, capacity int) ([]casbin2.Policy, error)

func (RoleGroupServiceImpl) CreateOrUpdateRoleGroupForJobsEntity

func (impl RoleGroupServiceImpl) CreateOrUpdateRoleGroupForJobsEntity(roleFilter bean.RoleFilter, userId int32, model *repository.RoleGroup, existingRoles map[int]*repository.RoleGroupRoleMapping, token string, managerAuth func(resource string, token string, object string) bool, tx *pg.Tx, capacity int) ([]casbin2.Policy, error)

func (RoleGroupServiceImpl) CreateOrUpdateRoleGroupForOtherEntity

func (impl RoleGroupServiceImpl) CreateOrUpdateRoleGroupForOtherEntity(roleFilter bean.RoleFilter, request *bean.RoleGroup, model *repository.RoleGroup, existingRoles map[int]*repository.RoleGroupRoleMapping, token string, managerAuth func(resource string, token string, object string) bool, tx *pg.Tx, capacity int) ([]casbin2.Policy, error)

func (RoleGroupServiceImpl) CreateRoleGroup

func (impl RoleGroupServiceImpl) CreateRoleGroup(request *bean.RoleGroup) (*bean.RoleGroup, error)

func (RoleGroupServiceImpl) DeleteRoleGroup

func (impl RoleGroupServiceImpl) DeleteRoleGroup(bean *bean.RoleGroup) (bool, error)

func (RoleGroupServiceImpl) FetchDetailedRoleGroups

func (impl RoleGroupServiceImpl) FetchDetailedRoleGroups() ([]*bean.RoleGroup, error)

func (RoleGroupServiceImpl) FetchRoleGroups

func (impl RoleGroupServiceImpl) FetchRoleGroups() ([]*bean.RoleGroup, error)

func (RoleGroupServiceImpl) FetchRoleGroupsById

func (impl RoleGroupServiceImpl) FetchRoleGroupsById(id int32) (*bean.RoleGroup, error)

func (RoleGroupServiceImpl) FetchRoleGroupsByName

func (impl RoleGroupServiceImpl) FetchRoleGroupsByName(name string) ([]*bean.RoleGroup, error)

func (RoleGroupServiceImpl) FetchRolesForGroups

func (impl RoleGroupServiceImpl) FetchRolesForGroups(groupNames []string) ([]*bean.RoleFilter, error)

func (RoleGroupServiceImpl) UpdateRoleGroup

func (impl RoleGroupServiceImpl) UpdateRoleGroup(request *bean.RoleGroup, token string, managerAuth func(resource, token string, object string) bool) (*bean.RoleGroup, error)

type User

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

type UserAudit

type UserAudit struct {
	UserId    int32
	ClientIp  string
	CreatedOn time.Time
	UpdatedOn time.Time
}

type UserAuditService

type UserAuditService interface {
	Save(userAudit *UserAudit) error
	GetLatestByUserId(userId int32) (*UserAudit, error)
	GetLatestUser() (*UserAudit, error)
	Update(userAudit *UserAudit) error
}

type UserAuditServiceImpl

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

func NewUserAuditServiceImpl

func NewUserAuditServiceImpl(logger *zap.SugaredLogger, userAuditRepository repository2.UserAuditRepository) *UserAuditServiceImpl

func (UserAuditServiceImpl) GetLatestByUserId

func (impl UserAuditServiceImpl) GetLatestByUserId(userId int32) (*UserAudit, error)

func (UserAuditServiceImpl) GetLatestUser

func (impl UserAuditServiceImpl) GetLatestUser() (*UserAudit, error)

func (UserAuditServiceImpl) Save

func (impl UserAuditServiceImpl) Save(userAudit *UserAudit) error

func (UserAuditServiceImpl) Update

func (impl UserAuditServiceImpl) Update(userAudit *UserAudit) error

type UserAuthService

type UserAuthService interface {
	HandleLoginWithClientIp(ctx context.Context, username, password, clientIp string) (string, error)
	HandleLogin(username string, password string) (string, error)
	HandleDexCallback(w http.ResponseWriter, r *http.Request)
	HandleRefresh(w http.ResponseWriter, r *http.Request)

	CreateRole(roleData *bean.RoleData) (bool, error)
	AuthVerification(r *http.Request) (bool, error)
	DeleteRoles(entityType string, entityName string, tx *pg.Tx, envIdentifier string, workflowName string) error
}

type UserAuthServiceImpl

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

func NewUserAuthServiceImpl

func NewUserAuthServiceImpl(userAuthRepository repository.UserAuthRepository, sessionManager *middleware.SessionManager,
	client session2.ServiceClient, logger *zap.SugaredLogger, userRepository repository.UserRepository,
	roleGroupRepository repository.RoleGroupRepository, userService UserService) *UserAuthServiceImpl

func (UserAuthServiceImpl) AuthVerification

func (impl UserAuthServiceImpl) AuthVerification(r *http.Request) (bool, error)

func (UserAuthServiceImpl) CreateRole

func (impl UserAuthServiceImpl) CreateRole(roleData *bean.RoleData) (bool, error)

func (UserAuthServiceImpl) DeleteRoles

func (impl UserAuthServiceImpl) DeleteRoles(entityType string, entityName string, tx *pg.Tx, envIdentifier string, workflowName string) (err error)

func (UserAuthServiceImpl) HandleDexCallback

func (impl UserAuthServiceImpl) HandleDexCallback(w http.ResponseWriter, r *http.Request)

func (UserAuthServiceImpl) HandleLogin

func (impl UserAuthServiceImpl) HandleLogin(username string, password string) (string, error)

func (UserAuthServiceImpl) HandleLoginWithClientIp

func (impl UserAuthServiceImpl) HandleLoginWithClientIp(ctx context.Context, username, password, clientIp string) (string, error)

func (UserAuthServiceImpl) HandleRefresh

func (impl UserAuthServiceImpl) HandleRefresh(w http.ResponseWriter, r *http.Request)

type UserCommonService

type UserCommonService interface {
	CreateDefaultPoliciesForAllTypes(team, entityName, env, entity, cluster, namespace, group, kind, resource, actionType, accessType, workflow string, userId int32) (bool, error, []casbin.Policy)
	RemoveRolesAndReturnEliminatedPolicies(userInfo *bean.UserInfo, existingRoleIds map[int]repository.UserRoleModel, eliminatedRoleIds map[int]*repository.UserRoleModel, tx *pg.Tx, token string, managerAuth func(resource, token, object string) bool) ([]casbin.Policy, error)
	RemoveRolesAndReturnEliminatedPoliciesForGroups(request *bean.RoleGroup, existingRoles map[int]*repository.RoleGroupRoleMapping, eliminatedRoles map[int]*repository.RoleGroupRoleMapping, tx *pg.Tx, token string, managerAuth func(resource string, token string, object string) bool) ([]casbin.Policy, error)
	CheckRbacForClusterEntity(cluster, namespace, group, kind, resource, token string, managerAuth func(resource, token, object string) bool) bool
	GetCapacityForRoleFilter(roleFilters []bean.RoleFilter) (int, map[int]int)
	BuildRoleFilterKeyForCluster(roleFilterMap map[string]*bean.RoleFilter, role repository.RoleModel, key string)
	BuildRoleFilterKeyForJobs(roleFilterMap map[string]*bean.RoleFilter, role repository.RoleModel, key string)
	BuildRoleFilterKeyForOtherEntity(roleFilterMap map[string]*bean.RoleFilter, role repository.RoleModel, key string)
	BuildRoleFilterForAllTypes(roleFilterMap map[string]*bean.RoleFilter, role repository.RoleModel, key string)
	GetUniqueKeyForAllEntity(role repository.RoleModel) string
}

type UserCommonServiceImpl

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

func NewUserCommonServiceImpl

func NewUserCommonServiceImpl(userAuthRepository repository.UserAuthRepository,
	logger *zap.SugaredLogger,
	userRepository repository.UserRepository,
	userGroupRepository repository.RoleGroupRepository,
	sessionManager2 *middleware.SessionManager,
	defaultRbacDataCacheFactory repository.RbacDataCacheFactory) *UserCommonServiceImpl

func (UserCommonServiceImpl) BuildRoleFilterForAllTypes

func (impl UserCommonServiceImpl) BuildRoleFilterForAllTypes(roleFilterMap map[string]*bean.RoleFilter, role repository.RoleModel, key string)

func (UserCommonServiceImpl) BuildRoleFilterKeyForCluster

func (impl UserCommonServiceImpl) BuildRoleFilterKeyForCluster(roleFilterMap map[string]*bean.RoleFilter, role repository.RoleModel, key string)

func (UserCommonServiceImpl) BuildRoleFilterKeyForJobs

func (impl UserCommonServiceImpl) BuildRoleFilterKeyForJobs(roleFilterMap map[string]*bean.RoleFilter, role repository.RoleModel, key string)

func (UserCommonServiceImpl) BuildRoleFilterKeyForOtherEntity

func (impl UserCommonServiceImpl) BuildRoleFilterKeyForOtherEntity(roleFilterMap map[string]*bean.RoleFilter, role repository.RoleModel, key string)

func (UserCommonServiceImpl) CheckRbacForClusterEntity

func (impl UserCommonServiceImpl) CheckRbacForClusterEntity(cluster, namespace, group, kind, resource, token string, managerAuth func(resource, token, object string) bool) bool

func (UserCommonServiceImpl) CreateDefaultPoliciesForAllTypes

func (impl UserCommonServiceImpl) CreateDefaultPoliciesForAllTypes(team, entityName, env, entity, cluster, namespace, group, kind, resource, actionType, accessType, workflow string, userId int32) (bool, error, []casbin.Policy)

func (UserCommonServiceImpl) CreateDefaultPoliciesForAllTypesV2

func (impl UserCommonServiceImpl) CreateDefaultPoliciesForAllTypesV2(team, entityName, env, entity, cluster, namespace, group, kind, resource, actionType, accessType, workflow string) (bool, error, []casbin.Policy)

func (UserCommonServiceImpl) GetCapacityForRoleFilter

func (impl UserCommonServiceImpl) GetCapacityForRoleFilter(roleFilters []bean.RoleFilter) (int, map[int]int)

func (UserCommonServiceImpl) GetUniqueKeyForAllEntity

func (impl UserCommonServiceImpl) GetUniqueKeyForAllEntity(role repository.RoleModel) string

func (UserCommonServiceImpl) RemoveRolesAndReturnEliminatedPolicies

func (impl UserCommonServiceImpl) RemoveRolesAndReturnEliminatedPolicies(userInfo *bean.UserInfo,
	existingRoleIds map[int]repository.UserRoleModel, eliminatedRoleIds map[int]*repository.UserRoleModel,
	tx *pg.Tx, token string, managerAuth func(resource, token, object string) bool) ([]casbin.Policy, error)

func (UserCommonServiceImpl) RemoveRolesAndReturnEliminatedPoliciesForGroups

func (impl UserCommonServiceImpl) RemoveRolesAndReturnEliminatedPoliciesForGroups(request *bean.RoleGroup, existingRoles map[int]*repository.RoleGroupRoleMapping, eliminatedRoles map[int]*repository.RoleGroupRoleMapping, tx *pg.Tx, token string, managerAuth func(resource string, token string, object string) bool) ([]casbin.Policy, error)

type UserRbacConfig

type UserRbacConfig struct {
	UseRbacCreationV2 bool `env:"USE_RBAC_CREATION_V2" envDefault:"true"`
}

type UserSelfRegistrationService

type UserSelfRegistrationService interface {
	CheckSelfRegistrationRoles() (CheckResponse, error)
	SelfRegister(emailId string) (*bean.UserInfo, error)
	CheckAndCreateUserIfConfigured(claims jwt.MapClaims) bool
}

type UserSelfRegistrationServiceImpl

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

func NewUserSelfRegistrationServiceImpl

func NewUserSelfRegistrationServiceImpl(logger *zap.SugaredLogger,
	selfRegistrationRolesRepository repository.SelfRegistrationRolesRepository, userService UserService) *UserSelfRegistrationServiceImpl

func (*UserSelfRegistrationServiceImpl) CheckAndCreateUserIfConfigured

func (impl *UserSelfRegistrationServiceImpl) CheckAndCreateUserIfConfigured(claims jwt.MapClaims) bool

func (*UserSelfRegistrationServiceImpl) CheckSelfRegistrationRoles

func (impl *UserSelfRegistrationServiceImpl) CheckSelfRegistrationRoles() (CheckResponse, error)

func (*UserSelfRegistrationServiceImpl) GetAllSelfRegistrationRoles

func (impl *UserSelfRegistrationServiceImpl) GetAllSelfRegistrationRoles() ([]string, error)

func (*UserSelfRegistrationServiceImpl) SelfRegister

func (impl *UserSelfRegistrationServiceImpl) SelfRegister(emailId string) (*bean.UserInfo, error)

type UserService

type UserService interface {
	CreateUser(userInfo *bean.UserInfo, token string, managerAuth func(resource, token string, object string) bool) ([]*bean.UserInfo, error)
	SelfRegisterUserIfNotExists(userInfo *bean.UserInfo) ([]*bean.UserInfo, error)
	UpdateUser(userInfo *bean.UserInfo, token string, managerAuth func(resource, token string, object string) bool) (*bean.UserInfo, bool, bool, []string, error)
	GetById(id int32) (*bean.UserInfo, error)
	GetAll() ([]bean.UserInfo, error)
	GetAllDetailedUsers() ([]bean.UserInfo, error)
	GetEmailFromToken(token string) (string, error)
	GetEmailById(userId int32) (string, error)
	GetLoggedInUser(r *http.Request) (int32, error)
	GetByIds(ids []int32) ([]bean.UserInfo, error)
	DeleteUser(userInfo *bean.UserInfo) (bool, error)
	CheckUserRoles(id int32) ([]string, error)
	SyncOrchestratorToCasbin() (bool, error)
	GetUserByToken(context context.Context, token string) (int32, string, error)
	//IsSuperAdmin(userId int) (bool, error)
	GetByIdIncludeDeleted(id int32) (*bean.UserInfo, error)
	UserExists(emailId string) bool
	UpdateTriggerPolicyForTerminalAccess() (err error)
	GetRoleFiltersByGroupNames(groupNames []string) ([]bean.RoleFilter, error)
	SaveLoginAudit(emailId, clientIp string, id int32)
}

type UserServiceImpl

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

func NewUserServiceImpl

func NewUserServiceImpl(userAuthRepository repository.UserAuthRepository,
	logger *zap.SugaredLogger,
	userRepository repository.UserRepository,
	userGroupRepository repository.RoleGroupRepository,
	sessionManager2 *middleware.SessionManager, userCommonService UserCommonService, userAuditService UserAuditService) *UserServiceImpl

func (*UserServiceImpl) CheckUserRoles

func (impl *UserServiceImpl) CheckUserRoles(id int32) ([]string, error)

func (*UserServiceImpl) CreateOrUpdateUserRolesForAllTypes

func (impl *UserServiceImpl) CreateOrUpdateUserRolesForAllTypes(roleFilter bean.RoleFilter, userId int32, model *repository.UserModel, existingRoles map[int]repository.UserRoleModel, token string, managerAuth func(resource string, token string, object string) bool, tx *pg.Tx, entity string, capacity int) ([]casbin2.Policy, bool, error)

func (*UserServiceImpl) CreateUser

func (impl *UserServiceImpl) CreateUser(userInfo *bean.UserInfo, token string, managerAuth func(resource, token string, object string) bool) ([]*bean.UserInfo, error)

func (*UserServiceImpl) DeleteUser

func (impl *UserServiceImpl) DeleteUser(bean *bean.UserInfo) (bool, error)

func (*UserServiceImpl) GetAll

func (impl *UserServiceImpl) GetAll() ([]bean.UserInfo, error)

GetAll excluding API token user

func (*UserServiceImpl) GetAllDetailedUsers

func (impl *UserServiceImpl) GetAllDetailedUsers() ([]bean.UserInfo, error)

func (*UserServiceImpl) GetById

func (impl *UserServiceImpl) GetById(id int32) (*bean.UserInfo, error)

func (*UserServiceImpl) GetByIdIncludeDeleted

func (impl *UserServiceImpl) GetByIdIncludeDeleted(id int32) (*bean.UserInfo, error)

func (*UserServiceImpl) GetByIds

func (impl *UserServiceImpl) GetByIds(ids []int32) ([]bean.UserInfo, error)

func (*UserServiceImpl) GetEmailById

func (impl *UserServiceImpl) GetEmailById(userId int32) (string, error)

func (*UserServiceImpl) GetEmailFromToken

func (impl *UserServiceImpl) GetEmailFromToken(token string) (string, error)

func (*UserServiceImpl) GetLoggedInUser

func (impl *UserServiceImpl) GetLoggedInUser(r *http.Request) (int32, error)

func (*UserServiceImpl) GetRoleFiltersByGroupNames

func (impl *UserServiceImpl) GetRoleFiltersByGroupNames(groupNames []string) ([]bean.RoleFilter, error)

func (*UserServiceImpl) GetUserByEmail

func (impl *UserServiceImpl) GetUserByEmail(emailId string) (*bean.UserInfo, error)

func (*UserServiceImpl) GetUserByToken

func (impl *UserServiceImpl) GetUserByToken(context context.Context, token string) (int32, string, error)

func (*UserServiceImpl) IsSuperAdmin

func (impl *UserServiceImpl) IsSuperAdmin(userId int) (bool, error)

func (*UserServiceImpl) SaveLoginAudit

func (impl *UserServiceImpl) SaveLoginAudit(emailId, clientIp string, id int32)

func (*UserServiceImpl) SelfRegisterUserIfNotExists

func (impl *UserServiceImpl) SelfRegisterUserIfNotExists(userInfo *bean.UserInfo) ([]*bean.UserInfo, error)

func (*UserServiceImpl) SyncOrchestratorToCasbin

func (impl *UserServiceImpl) SyncOrchestratorToCasbin() (bool, error)

func (*UserServiceImpl) UpdateTriggerPolicyForTerminalAccess

func (impl *UserServiceImpl) UpdateTriggerPolicyForTerminalAccess() (err error)

func (*UserServiceImpl) UpdateUser

func (impl *UserServiceImpl) UpdateUser(userInfo *bean.UserInfo, token string, managerAuth func(resource, token string, object string) bool) (*bean.UserInfo, bool, bool, []string, error)

func (*UserServiceImpl) UserExists

func (impl *UserServiceImpl) UserExists(emailId string) bool

type WebhookToken

type WebhookToken struct {
	WebhookToken string `env:"WEBHOOK_TOKEN" envDefault:""`
}

func GetWebhookToken

func GetWebhookToken() (*WebhookToken, error)

Directories

Path Synopsis
Package mock_user is a generated GoMock package.
Package mock_user is a generated GoMock package.
casbin
Package mock_casbin is a generated GoMock package.
Package mock_casbin is a generated GoMock package.
@description: user crud
@description: user crud

Jump to

Keyboard shortcuts

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