1
1
package gitlab
2
2
3
3
import (
4
- "fmt"
5
4
"log"
6
5
"strconv"
7
6
"strings"
8
7
9
8
"github.com/hashicorp/terraform/helper/schema"
10
- gitlab "github.com/xanzy/go-gitlab"
9
+ "github.com/xanzy/go-gitlab"
11
10
)
12
11
13
12
func resourceGitlabGroupMembership () * schema.Resource {
13
+ acceptedAccessLevels := make ([]string , 0 , len (accessLevelID ))
14
+ for k := range accessLevelID {
15
+ acceptedAccessLevels = append (acceptedAccessLevels , k )
16
+ }
14
17
return & schema.Resource {
15
18
Create : resourceGitlabGroupMembershipCreate ,
16
19
Read : resourceGitlabGroupMembershipRead ,
@@ -32,8 +35,9 @@ func resourceGitlabGroupMembership() *schema.Resource {
32
35
Required : true ,
33
36
},
34
37
"access_level" : {
35
- Type : schema .TypeString ,
36
- Required : true ,
38
+ Type : schema .TypeString ,
39
+ ValidateFunc : validateValueFunc (acceptedAccessLevels ),
40
+ Required : true ,
37
41
},
38
42
"expires_at" : {
39
43
Type : schema .TypeString , // Format YYYY-MM-DD
@@ -49,12 +53,8 @@ func resourceGitlabGroupMembershipCreate(d *schema.ResourceData, meta interface{
49
53
userId := d .Get ("user_id" ).(int )
50
54
groupId := d .Get ("group_id" ).(string )
51
55
expiresAt := d .Get ("expires_at" ).(string )
52
- accessLevel := strings .ToLower (d .Get ("access_level" ).(string ))
53
- accessLevelId , ok := accessLevelID [accessLevel ]
56
+ accessLevelId := accessLevelID [d .Get ("access_level" ).(string )]
54
57
55
- if ! ok {
56
- return fmt .Errorf ("Invalid access level '%s'" , accessLevel )
57
- }
58
58
options := & gitlab.AddGroupMemberOptions {
59
59
UserID : & userId ,
60
60
AccessLevel : & accessLevelId ,
@@ -113,11 +113,8 @@ func resourceGitlabGroupMembershipUpdate(d *schema.ResourceData, meta interface{
113
113
userId := d .Get ("user_id" ).(int )
114
114
groupId := d .Get ("group_id" ).(string )
115
115
expiresAt := d .Get ("expires_at" ).(string )
116
- accessLevel := strings .ToLower (d .Get ("access_level" ).(string ))
117
- accessLevelId , ok := accessLevelID [accessLevel ]
118
- if ! ok {
119
- return fmt .Errorf ("Invalid access level '%s'" , accessLevel )
120
- }
116
+ accessLevelId := accessLevelID [strings .ToLower (d .Get ("access_level" ).(string ))]
117
+
121
118
options := gitlab.EditGroupMemberOptions {
122
119
AccessLevel : & accessLevelId ,
123
120
ExpiresAt : & expiresAt ,
0 commit comments