cloudfoundry-incubator/stratos

View on GitHub
src/jetstream/plugins/userinfo/noauth_user.go

Summary

Maintainability
A
0 mins
Test Coverage
package userinfo

import (
    "encoding/json"
    "errors"
    "net/http"

    "github.com/cloudfoundry-incubator/stratos/src/jetstream/repository/interfaces"
)

// NoAuthUserInfo is a plugin for no authentication
type NoAuthUserInfo struct {
    portalProxy interfaces.PortalProxy
}

// InitNoAuthUserInfo creates a new no auth user info provider
func InitNoAuthUserInfo(portalProxy interfaces.PortalProxy) Provider {
    return &NoAuthUserInfo{portalProxy: portalProxy}
}

// GetUserInfo gets info for the specified user
func (userInfo *NoAuthUserInfo) GetUserInfo(id string) (int, []byte, *http.Header, error) {

    uaaUser := &uaaUser{
        ID:       id,
        Origin:   "noauth",
        Username: interfaces.DefaultAdminUserName,
    }

    emails := make([]uaaUserEmail, 0)
    uaaUser.Emails = emails

    uaaUser.Name.GivenName = "Admin"
    uaaUser.Name.FamilyName = "User"

    groups := make([]uaaUserGroup, 0)
    uaaUser.Groups = groups

    uaaUser.Meta.Version = 0

    jsonString, err := json.Marshal(uaaUser)
    if err != nil {
        return 500, nil, nil, err
    }

    return 200, jsonString, nil, nil
}

// UpdateUserInfo updates the user's info
func (userInfo *NoAuthUserInfo) UpdateUserInfo(profile *uaaUser) (int, error) {
    return 0, errors.New("Update not supported")
}

// UpdatePassword updates the user's password
func (userInfo *NoAuthUserInfo) UpdatePassword(id string, passwordInfo *passwordChangeInfo) (int, error) {
    return 0, errors.New("Update not supported")
}