@@ -16,7 +16,23 @@ func resourceGitlabUser() *schema.Resource {
1616 Update : resourceGitlabUserUpdate ,
1717 Delete : resourceGitlabUserDelete ,
1818 Importer : & schema.ResourceImporter {
19- State : schema .ImportStatePassthrough ,
19+ State : func (d * schema.ResourceData , meta interface {}) ([]* schema.ResourceData , error ) {
20+ client := meta .(* gitlab.Client )
21+ log .Printf ("[DEBUG] read gitlab user %s" , d .Id ())
22+
23+ id , _ := strconv .Atoi (d .Id ())
24+
25+ user , _ , err := client .Users .GetUser (id )
26+ if err != nil {
27+ return nil , err
28+ }
29+
30+ resourceGitlabUserSetToState (d , user )
31+ d .Set ("email" , user .Email )
32+ d .Set ("is_admin" , user .IsAdmin )
33+ d .Set ("is_external" , user .External )
34+ return []* schema.ResourceData {d }, nil
35+ },
2036 },
2137
2238 Schema : map [string ]* schema.Schema {
@@ -26,7 +42,7 @@ func resourceGitlabUser() *schema.Resource {
2642 },
2743 "password" : {
2844 Type : schema .TypeString ,
29- Required : true ,
45+ Optional : true ,
3046 Sensitive : true ,
3147 },
3248 "email" : {
@@ -109,7 +125,7 @@ func resourceGitlabUserCreate(d *schema.ResourceData, meta interface{}) error {
109125
110126func resourceGitlabUserRead (d * schema.ResourceData , meta interface {}) error {
111127 client := meta .(* gitlab.Client )
112- log .Printf ("[DEBUG] read gitlab user %s" , d .Id ())
128+ log .Printf ("[DEBUG] import -- read gitlab user %s" , d .Id ())
113129
114130 id , _ := strconv .Atoi (d .Id ())
115131
0 commit comments