Skip to content
This repository has been archived by the owner on Jun 14, 2021. It is now read-only.

Commit

Permalink
add user read + comments for docs
Browse files Browse the repository at this point in the history
  • Loading branch information
Melissa Meyer committed Jan 19, 2018
1 parent fa129a2 commit 99ae445
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 13 deletions.
1 change: 1 addition & 0 deletions main.go
@@ -1,3 +1,4 @@
// Package main terraform initial entrypoint & redirect to the okta package
package main

import (
Expand Down
5 changes: 2 additions & 3 deletions okta/config.go
@@ -1,11 +1,11 @@
package okta

import (
"log"

"github.com/articulate/oktasdk-go/okta"
)

// Config is a struct containing our provider schema values
// plus the okta client object
type Config struct {
orgName string
domain string
Expand All @@ -17,7 +17,6 @@ type Config struct {
func (c *Config) loadAndValidate() error {
client, err := okta.NewClientWithDomain(nil, c.orgName, c.domain, c.apiToken)
if err != nil {
log.Println("[ERROR] Error Initializing Okta client:\n \t%v", err)
return err
}
c.oktaClient = client
Expand Down
4 changes: 4 additions & 0 deletions okta/provider.go
@@ -1,3 +1,4 @@
// Package okta terraform configuration for an okta site
package okta

import (
Expand All @@ -7,6 +8,8 @@ import (
"github.com/hashicorp/terraform/terraform"
)

// Provider establishes a client connection to an okta site
// determined by its schema string values
func Provider() terraform.ResourceProvider {
return &schema.Provider{
Schema: map[string]*schema.Schema{
Expand Down Expand Up @@ -47,6 +50,7 @@ func providerConfigure(d *schema.ResourceData) (interface{}, error) {
apiToken: d.Get("api_token").(string),
}
if err := config.loadAndValidate(); err != nil {
log.Println("[ERROR] Error initializing Okta client: \n \t%v", err)
return nil, err
}
return &config, nil
Expand Down
50 changes: 40 additions & 10 deletions okta/users.go
Expand Up @@ -36,34 +36,59 @@ func resourceUsers() *schema.Resource {
}

func resourceUserCreate(d *schema.ResourceData, m interface{}) error {
log.Println("[INFO] Creating User")
log.Println("[INFO] " + d.Get("email").(string))
log.Println("[INFO] Creating User" + d.Get("email").(string))
client := m.(*Config).oktaClient
log.Printf("USERS RESOURCE %+v\n", client)

newUserTemplate := client.Users.NewUser()
newUserTemplate.Profile.FirstName = d.Get("firstname").(string)
newUserTemplate.Profile.LastName = d.Get("lastname").(string)
newUserTemplate.Profile.Login = d.Get("email").(string)
newUserTemplate.Profile.Email = newUserTemplate.Profile.Login

jsonTest, _ := json.Marshal(newUserTemplate)
_, err := json.Marshal(newUserTemplate)
if err != nil {
log.Println("[ERROR] Error json formatting new user template: %v", err)
return err
}

log.Println("[INFO] User Json\n\t%v\n\n", string(jsonTest))
createNewUserAsActive := false
// activate user but send an email to set their password
// okta user status will be "Password reset" until they complete
// the okta signup process
createNewUserAsActive := true

newUser, _, err := client.Users.Create(newUserTemplate, createNewUserAsActive)
log.Println("[INFO] newUser \n\t%v\n\n", newUser)

if err != nil {

log.Println("[ERROR] Error Creating User:\n \t%v", err)
log.Println("[ERROR] Error Creating User: %v", err)
return err
}

// set the resource ID in terraform
d.SetId(d.Get("email").(string))

log.Println("[INFO] User Created: %v", *newUser)
return nil
}

func resourceUserRead(d *schema.ResourceData, m interface{}) error {
log.Println("[INFO] List User " + d.Get("email").(string))
client := m.(*Config).oktaClient

listFilter := client.Users.UserListFilterOptions()
listFilter.EmailEqualTo = d.Get("email").(string)

_, err := json.Marshal(listFilter)
if err != nil {
log.Println("[ERROR] Error json formatting user filter template: %v", err)
return err
}

userList, _, err := client.Users.ListWithFilter(&listFilter)
if err != nil {
log.Println("[ERROR] Error listing user: %v", err)
return err
}
log.Println("[INFO] User List: %v", userList)

return nil
}

Expand All @@ -72,5 +97,10 @@ func resourceUserUpdate(d *schema.ResourceData, m interface{}) error {
}

func resourceUserDelete(d *schema.ResourceData, m interface{}) error {
// log.Println("[INFO] Destroy Managed Users")
// client := m.(*Config).oktaClient

// destroy user
// d.SetId(")
return nil
}

0 comments on commit 99ae445

Please sign in to comment.