123456789101112131415161718192021222324252627282930313233343536 |
- package aetest
- import (
- "hash/crc32"
- "net/http"
- "strconv"
- "google.golang.org/appengine/user"
- )
- // Login causes the provided Request to act as though issued by the given user.
- func Login(u *user.User, req *http.Request) {
- req.Header.Set("X-AppEngine-User-Email", u.Email)
- id := u.ID
- if id == "" {
- id = strconv.Itoa(int(crc32.Checksum([]byte(u.Email), crc32.IEEETable)))
- }
- req.Header.Set("X-AppEngine-User-Id", id)
- req.Header.Set("X-AppEngine-User-Federated-Identity", u.Email)
- req.Header.Set("X-AppEngine-User-Federated-Provider", u.FederatedProvider)
- if u.Admin {
- req.Header.Set("X-AppEngine-User-Is-Admin", "1")
- } else {
- req.Header.Set("X-AppEngine-User-Is-Admin", "0")
- }
- }
- // Logout causes the provided Request to act as though issued by a logged-out
- // user.
- func Logout(req *http.Request) {
- req.Header.Del("X-AppEngine-User-Email")
- req.Header.Del("X-AppEngine-User-Id")
- req.Header.Del("X-AppEngine-User-Is-Admin")
- req.Header.Del("X-AppEngine-User-Federated-Identity")
- req.Header.Del("X-AppEngine-User-Federated-Provider")
- }
|