@@ -93,23 +93,36 @@ type auth_response_struct struct {
93
93
}
94
94
95
95
type auth_token_struct struct {
96
- Roles []auth_roles_struct `json:"roles"`
97
- Expires_at string `json:"expires_at"`
96
+ Roles []auth_roles_struct `json:"roles"`
97
+ Expires_at string `json:"expires_at"`
98
+ User auth_user_response_struct `json:"user"`
98
99
}
99
100
100
101
type auth_roles_struct struct {
101
102
Id string `json:"id"`
102
103
Name string `json:"name"`
103
104
}
104
105
106
+ type auth_user_response_struct struct {
107
+ Name string `json:"name"`
108
+ Id string `json:"id"`
109
+ Domain auth_userdomain_response_struct `json:"domain"`
110
+ }
111
+
112
+ type auth_userdomain_response_struct struct {
113
+ Name string `json:"name"`
114
+ Id string `json:"id"`
115
+ }
116
+
105
117
// Projects Response
106
118
type project_response_struct struct {
107
119
Projects []project_struct
108
120
}
109
121
110
122
type project_struct struct {
111
- Name string
112
- Enabled bool
123
+ Name string
124
+ Enabled bool
125
+ DomainId string `json:"domain_id"`
113
126
}
114
127
115
128
////////////////////////
@@ -120,6 +133,7 @@ type project_struct struct {
120
133
type Auth_data struct {
121
134
Server string
122
135
Domain string
136
+ DomainId string
123
137
Username string
124
138
Password string
125
139
Project string
@@ -205,6 +219,7 @@ func authenticate(data *Auth_data, b []byte) error {
205
219
data .Token = resp .Header .Get ("X-Subject-Token" )
206
220
data .Expiration = auth_response .Token .Expires_at
207
221
data .Roles = auth_response .Token .Roles
222
+ data .DomainId = auth_response .Token .User .Domain .Id
208
223
209
224
return nil
210
225
}
@@ -225,8 +240,9 @@ func anonymisePasswordsTokens(data *Auth_data, json []byte) []byte {
225
240
226
241
// Projects Section
227
242
type Projects_data struct {
228
- Token string
229
- Server string
243
+ Token string
244
+ Server string
245
+ DomainId string
230
246
//response
231
247
Projects []string
232
248
}
@@ -264,7 +280,7 @@ func GetProjects(data *Projects_data) error {
264
280
return err
265
281
}
266
282
for _ , project := range project_response .Projects {
267
- if project .Enabled {
283
+ if project .Enabled && ( project . DomainId == data . DomainId ) {
268
284
data .Projects = append (data .Projects , project .Name )
269
285
}
270
286
}
0 commit comments