Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddFilters

func AddFilters(c context.Context, filts ...Filter) context.Context

    AddFilters adds RawInterface filters to the context.

    func IsAdmin

    func IsAdmin(c context.Context) bool

      IsAdmin returns true if the current user is an administrator for this AppEngine project.

      func LoginURL

      func LoginURL(c context.Context, dest string) (string, error)

        LoginURL returns a URL that, when visited, prompts the user to sign in, then redirects the user to the URL specified by dest.

        func LoginURLFederated

        func LoginURLFederated(c context.Context, dest, identity string) (string, error)

          LoginURLFederated is like LoginURL but accepts a user's OpenID identifier.

          func LogoutURL

          func LogoutURL(c context.Context, dest string) (string, error)

            LogoutURL returns a URL that, when visited, signs the user out, then redirects the user to the URL specified by dest.

            func OAuthConsumerKey

            func OAuthConsumerKey(c context.Context) (string, error)

              OAuthConsumerKey returns the OAuth consumer key provided with the current request.

              This method will return an error if the OAuth request was invalid.

              func Set

                Set sets the user service in this context. Useful for testing with a quick mock. This is just a shorthand SetFactory invocation to set a factory which always returns the same object.

                func SetFactory

                func SetFactory(c context.Context, f Factory) context.Context

                  SetFactory sets the function to produce user.RawInterface instances, as returned by the Get method.

                  Types

                  type Factory

                  type Factory func(context.Context) RawInterface

                    Factory is the function signature for factory methods compatible with SetFactory.

                    type Filter

                      Filter is the function signature for a filter user implementation. It gets the current user implementation, and returns a new user implementation backed by the one passed in.

                      type RawInterface

                      type RawInterface interface {
                      	Current() *User
                      	CurrentOAuth(scopes ...string) (*User, error)
                      
                      	IsAdmin() bool
                      
                      	LoginURL(dest string) (string, error)
                      	LoginURLFederated(dest, identity string) (string, error)
                      	LogoutURL(dest string) (string, error)
                      
                      	OAuthConsumerKey() (string, error)
                      
                      	// If this implementation supports it, this will return an instance of the
                      	// Testable object for this service, which will let you 'log in' virtual users
                      	// in your test cases. If the implementation doesn't support it, it will
                      	// return nil.
                      	GetTestable() Testable
                      }

                        RawInterface provides access to the "appengine/users" API methods.

                        func Raw

                          Raw pulls the user service implementation from context or nil if it wasn't set.

                          type Testable

                          type Testable interface {
                          	// SetUser sets the user to a pre-populated User object.
                          	SetUser(*User)
                          
                          	// Login will generate and set a new User object with values derived from
                          	// email clientID, and admin values. If clientID is provided, the User will
                          	// look like they logged in with OAuth. If it's empty, then this will look
                          	// like they logged in via the cookie auth method.
                          	Login(email, clientID string, admin bool)
                          
                          	// Equivalent to SetUser(nil), but a bit more obvious to read in the code :).
                          	Logout()
                          }

                            Testable is the interface that test implimentations will provide.

                            func GetTestable

                            func GetTestable(c context.Context) Testable

                              GetTestable returns a Testable for the current task queue service in c, or nil if it does not offer one.

                              The Testable instance will let you 'log in' virtual users in your test cases.

                              type User

                              type User struct {
                              	Email             string
                              	AuthDomain        string
                              	Admin             bool
                              	ID                string
                              	ClientID          string
                              	FederatedIdentity string
                              	FederatedProvider string
                              }

                                User is a mimic of https://godoc.org/google.golang.org/appengine/user#User

                                It's provided here for convenience, and is compile-time checked to be identical.

                                func Current

                                func Current(c context.Context) *User

                                  Current returns the currently logged-in user, or nil if the user is not signed in.

                                  func CurrentOAuth

                                  func CurrentOAuth(c context.Context, scopes ...string) (*User, error)

                                    CurrentOAuth returns the user associated with the OAuth consumer making this request.

                                    If the OAuth consumer did not make a valid OAuth request, or the scopes is non-empty and the current user does not have at least one of the scopes, this method will return an error.