users

package
v1.10.1 Latest Latest
Warning

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

Go to latest
Published: Apr 1, 2024 License: GPL-3.0 Imports: 19 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// NextGISAuthType NextGIS auth type
	NextGISAuthType = 1
	// KeycloakAuthType Keycloak auth type
	KeycloakAuthType = 2
	// CustomAuthType Custom auth type
	CustomAuthType = 3
	// BlitzAuthType Blitz auth type
	BlitzAuthType = 4
)
View Source
const (
	NextGISPlanFree    = 0
	NextGISPlanMini    = 1
	NextGISPlanPremium = 2
)

Variables

This section is empty.

Functions

func AddToTokenCache added in v0.6.8

func AddToTokenCache(key string, value TokenInfo) bool

AddToTokenCache Add value to token cache

func AuthenticateLDAPUser

func AuthenticateLDAPUser(username string, password string) error

AuthenticateLDAPUser Authenticate LDAP User

func AuthenticationRequired added in v1.2.0

func AuthenticationRequired() gin.HandlerFunc

AuthenticationRequired check if authenticate required

func InitTokenCache added in v0.6.8

func InitTokenCache() error

InitTokenCache Initialise token cache

func IsAPIKeyAuth added in v1.2.0

func IsAPIKeyAuth(gc *gin.Context) bool

IsAPIKeyAuth Check if this is API key authentication

func IsBasicAuth added in v1.2.0

func IsBasicAuth(gc *gin.Context) bool

IsBasicAuth Check if this is basic authentication

func IsCookieAuth added in v1.2.0

func IsCookieAuth(gc *gin.Context) bool

IsCookieAuth Check if this is cookie based authentication

func IsOAuth2 added in v1.2.0

func IsOAuth2(gc *gin.Context) bool

IsOAuth2 Check if this is OAth2 authentication

func Log added in v0.8.1

func Log(gc *gin.Context, statusCode int, user *LogUserInfo, ctxInfo *LogContextInfo)

Log Write to log

func OAuth2Logout added in v0.9.0

func OAuth2Logout(token *TokenJSON, headers map[string]string) error

OAuth2Logout Logout from oauth

func OAuth2Options

func OAuth2Options(gc *gin.Context)

OAuth2Options Get oauth options: endpoint, cleint_id, etc. @Summary Get oauth options: endpoint, cleint_id, etc. @Tags admin @Produce json @Success 200 {object} oauth2Options @Router /api/oauth2/options [get]

func OutputWithLog added in v0.8.0

func OutputWithLog(gc *gin.Context, statusCode int, user *LogUserInfo,
	ctxInfo *LogContextInfo, abort bool, obj interface{})

OutputWithLog Form log reccord and finish route

func RemoveFromTokenCache added in v0.6.8

func RemoveFromTokenCache(key string)

RemoveFromTokenCache Remove token from cache

func TestLDAPConnection

func TestLDAPConnection(gc *gin.Context)

TestLDAPConnection test connection to LDAP server

func UpdateLDAPSettings added in v0.3.0

func UpdateLDAPSettings(li *LdapInfo)

UpdateLDAPSettings Update LDAP settings

func UpdateLocalSettings added in v0.3.0

func UpdateLocalSettings(li *LocalAuthInfo)

UpdateLocalSettings Update local setting

func UpdateOAuth2Settings added in v0.3.0

func UpdateOAuth2Settings(oi *OAuth2Info)

UpdateOAuth2Settings Update oauth2 setting

Types

type IntrospectResponse added in v0.3.1

type IntrospectResponse struct {
	Active   bool   `json:"active" binding:"required"`
	Exp      int64  `json:"exp"`
	Scopes   string `json:"scope"`
	Username string `json:"username"`
	NGID     string `json:"nextgis_guid"`
}

IntrospectResponse Introspect response information

func TokenIntrospection

func TokenIntrospection(token *TokenJSON) (*IntrospectResponse, error)

TokenIntrospection Token introspection

type LdapInfo

type LdapInfo struct {
	Enable         bool   `form:"enable" json:"enable"`                     // LDAP_LOGIN
	BaseDN         string `form:"base_dn" json:"base_dn"`                   // LDAP_BASE_DN
	UserFilter     string `form:"user_filter" json:"user_filter"`           // LDAP_USER_FILTER
	UserAttribute  string `form:"user_attr" json:"user_attr"`               // LDAP_USER_ATTR
	URL            string `form:"url" json:"url"`                           // LDAP_URL
	TLS            string `form:"tls" json:"tls"`                           // LDAP_TLS
	TLSNoVerify    bool   `form:"tls_no_verify" json:"tls_no_verify"`       // LDAP_TLS_NO_VERIFY
	TLSCertPath    string `form:"tls_cert_path" json:"tls_cert_path"`       // LDAP_TLS_CERT_PATH
	TLSKeyPath     string `form:"tls_key_path" json:"tls_key_path"`         // LDAP_TLS_KEY_PATH
	TLSCaCertPath  string `form:"tls_cacert_path" json:"tls_cacert_path"`   // LDAP_TLS_CACERT_PATH
	DN             string `form:"dn" json:"dn"`                             // LDAP_DN
	DNPassword     string `form:"dn_password" json:"dn_password"`           // LDAP_DN_PWD
	GroupFilter    string `form:"group_filter" json:"group_filter"`         // LDAP_GROUP_FILTER
	GroupAttribute string `form:"group_attr" json:"group_attr"`             // LDAP_GROUP_ATTR
	DefaultGroupID int    `form:"default_group_id" json:"default_group_id"` // LDAP_DEFAULT_GROUP_ID
	UpdateGroups   bool   `form:"update_groups" json:"update_groups"`       // LDAP_UPDATE_GROUPS
}

LdapInfo LDAP Info structure

func (*LdapInfo) Fill added in v1.2.0

func (li *LdapInfo) Fill()

Fill Fill LdapInfo structure by values

type LocalAuthInfo added in v0.3.0

type LocalAuthInfo struct {
	Enable      bool   `form:"enable" json:"enable"`             // LOCAL_LOGIN
	Log         bool   `form:"log" json:"log"`                   // LOG
	LogEdits    bool   `form:"log_edits" json:"log_edits"`       // LOG_ONLY_EDITS
	DefaultLang string `form:"default_lang" json:"default_lang"` // DEFAULT_LANGUAGE
	AdminGroup  string `form:"admin_group" json:"admin_group"`   // ADMIN_GROUP_NAME
}

LocalAuthInfo Local Info structure

func (*LocalAuthInfo) Fill added in v1.2.0

func (li *LocalAuthInfo) Fill()

Fill Fill LocalAuthInfo structure by values

type LogContextInfo added in v0.8.0

type LogContextInfo struct {
	ID    uint   `json:"id"`
	Model string `json:"model"`
}

LogContextInfo Context information struct

type LogUserInfo added in v0.8.0

type LogUserInfo struct {
	ID          uint   `json:"id"`
	KeyName     string `json:"keyname"`
	DisplayName string `json:"display_name"`
	OAuthSubj   string `json:"oauth_subject"`
}

LogUserInfo User information struct

type NGSupportInfo

type NGSupportInfo struct {
	Supported bool   `json:"supported"`
	StartDate string `json:"start_date"`
	EndDate   string `json:"end_date"`
	NGID      string `json:"nextgis_guid"`
	Sign      string `json:"sign"`
}

NGSupportInfo Support information

func GetSupportInfo

func GetSupportInfo(token *TokenJSON) (*NGSupportInfo, error)

GetSupportInfo Get support information

type NGUserSupportInfo

type NGUserSupportInfo struct {
	Username       string `json:"username"`
	FirstName      string `json:"first_name"`
	LastName       string `json:"last_name"`
	Supported      bool   `json:"supported"`
	StartDate      string `json:"start_date"`
	EndDate        string `json:"end_date"`
	NGID           string `json:"nextgis_guid" binding:"required"`
	Email          string `json:"email"`
	EmailConfirmed bool   `json:"email_confirmed"`
}

NGUserSupportInfo NextGIS user and support information

func GetUserSuppotInfo

func GetUserSuppotInfo(ngID string) (*NGUserSupportInfo, error)

GetUserSuppotInfo Get user and support information

type OAuth2Info

type OAuth2Info struct {
	Enable                bool   `form:"enable" json:"enable"`                                 // OAUTH_LOGIN
	Endpoint              string `form:"endpoint" json:"endpoint"`                             // OAUTH2_ENDPOINT
	ClientID              string `form:"client_id" json:"client_id"`                           // OAUTH2_CLIENT_ID
	ClientSecret          string `form:"client_secret" json:"client_secret"`                   // OAUTH2_CLIENT_SECRET
	Scope                 string `form:"scope" json:"scope"`                                   // OAUTH2_SCOPE
	Type                  int    `form:"type" json:"type"`                                     // OAUTH2_TYPE
	TokenEndpoint         string `form:"token_endpoint" json:"token_endpoint"`                 // OAUTH2_TOKEN_ENDPOINT
	AuthEndpoint          string `form:"auth_endpoint" json:"auth_endpoint"`                   // OAUTH2_AUTH_ENDPOINT
	UserInfoEndpoint      string `form:"userinfo_endpoint" json:"userinfo_endpoint"`           // OAUTH2_USERINFO_ENDPOINT
	IntrospectionEndpoint string `form:"introspection_endpoint" json:"introspection_endpoint"` // OAUTH2_INTROSPECTION_ENDPOINT
	SubjAttribute         string `form:"subj_attr" json:"subj_attr"`                           // OAUTH2_PROFILE_SUBJ_ATTR
	KeynameAttribute      string `form:"keyname_attr" json:"keyname_attr"`                     // OAUTH2_PROFILE_KEYNAME_ATTR
	FirstnameAttribute    string `form:"firstname_attr" json:"firstname_attr"`                 // OAUTH2_PROFILE_FIRSTNAME_ATTR
	LastnameAttribute     string `form:"lastname_attr" json:"lastname_attr"`                   // OAUTH2_PROFILE_LASTNAME_ATTR
	CreateGroups          bool   `form:"create_groups" json:"create_groups"`                   // OAUTH2_CREATE_GROUPS
	UpdateGroups          bool   `form:"update_groups" json:"update_groups"`                   // OAUTH2_UPDATE_GROUPS
	UserAutocreate        bool   `form:"user_autocreate" json:"user_autocreate"`               // OAUTH2_USER_AUTOCREATE
	LogoutEndpoint        string `form:"logout_endpoint" json:"logout_endpoint"`               // OAUTH2_LOGOUT_ENDPOINT
	GroupsJWTKey          string `form:"groups_jwt_key" json:"groups_jwt_key"`                 // OAUTH2_GROUPS_JWT_KEY
}

OAuth2Info OAuth2 Information

func (*OAuth2Info) Fill added in v1.2.1

func (oi *OAuth2Info) Fill()

Fill Init OAuth2 Information

type TokenInfo added in v0.6.9

type TokenInfo struct {
	Exp    time.Time
	UserID uint
}

TokenInfo token info

func GetFromTokenCache added in v0.6.8

func GetFromTokenCache(key string) (value TokenInfo, ok bool)

GetFromTokenCache Get value from token cache

type TokenJSON

type TokenJSON struct {
	AccessToken  string `json:"access_token"`
	TokenType    string `json:"token_type"`
	RefreshToken string `json:"refresh_token"`
	ExpiresIn    int    `json:"expires_in"`
}

TokenJSON Token information

func GetToken

func GetToken(code, redirectURI, query string) (*TokenJSON, error)

GetToken Get access token

func GetTokenByClientSecret added in v0.15.1

func GetTokenByClientSecret() (*TokenJSON, error)

GetTokenByClientSecret Get access token for client id and client secret

func RefreshToken added in v0.5.0

func RefreshToken(token *TokenJSON, scope string) (*TokenJSON, error)

RefreshToken Refresh access token

func (*TokenJSON) FromSession added in v0.6.0

func (token *TokenJSON) FromSession(session sessions.Session)

FromSession Set token from session

func (*TokenJSON) ToSession added in v0.6.0

func (token *TokenJSON) ToSession(session sessions.Session) sessions.Session

ToSession Save token to session

type UserInfo added in v0.3.0

type UserInfo struct {
	Username       string   `json:"username"`
	FirstName      string   `json:"first_name"`
	LastName       string   `json:"last_name"`
	ID             string   `json:"guid"`
	Locale         string   `json:"locale"`
	Email          string   `json:"email"`
	EmailConfirmed bool     `json:"email_confirmed"`
	Plan           int      `json:"subscription_plan"`
	WebGISList     []string `json:"available_webgises"`
	Roles          []string `json:"roles"`
}

UserInfo User information

func GetLDAPUserDetails

func GetLDAPUserDetails(username string, password string) (UserInfo, error)

GetLDAPUserDetails Get LDAP user details

func GetUserInfo

func GetUserInfo(token *TokenJSON) (UserInfo, error)

GetUserInfo Get user information

Jump to

Keyboard shortcuts

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