// addKeyToUser adds a key to a user in mongodb and send the key to the git server // in order to allow ssh-ing into git server. func addKeyToUser(content string, u *auth.User) error { key := auth.Key{Content: content} if u.HasKey(key) { return &errors.Http{Code: http.StatusConflict, Message: "User already has this key"} } actions := []*action.Action{ &addKeyInGandalfAction, &addKeyInDatabaseAction, } pipeline := action.NewPipeline(actions...) err := pipeline.Execute(&key, u) if err != nil { return err } return nil }