-
Notifications
You must be signed in to change notification settings - Fork 472
/
user.go
62 lines (54 loc) 路 2.65 KB
/
user.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
/* -------------------------------------------------------------------------- */
/* Copyright 2002-2023, OpenNebula Project, OpenNebula Systems */
/* */
/* Licensed under the Apache License, Version 2.0 (the "License"); you may */
/* not use this file except in compliance with the License. You may obtain */
/* a copy of the License at */
/* */
/* http://www.apache.org/licenses/LICENSE-2.0 */
/* */
/* Unless required by applicable law or agreed to in writing, software */
/* distributed under the License is distributed on an "AS IS" BASIS, */
/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
/* See the License for the specific language governing permissions and */
/* limitations under the License. */
/*--------------------------------------------------------------------------- */
package user
import (
"encoding/xml"
dyn "github.com/OpenNebula/one/src/oca/go/src/goca/dynamic"
"github.com/OpenNebula/one/src/oca/go/src/goca/schemas/shared"
)
// Pool represents an OpenNebula User pool
type Pool struct {
XMLName xml.Name `xml:"USER_POOL"`
Users []User `xml:"USER"`
Quotas []shared.Quotas `xml:"QUOTAS"`
DefaultUserQuotas shared.QuotasList `xml:"DEFAULT_USER_QUOTAS"`
}
// UserShort keeps summary information on a user
type UserShort struct {
XMLName xml.Name `xml:"USER"`
ID int `xml:"ID,omitempty"`
GID int `xml:"GID,omitempty"`
Groups shared.EntitiesID `xml:"GROUPS,omitempty"`
GName string `xml:"GNAME,omitempty"`
Name string `xml:"NAME,omitempty"`
Password string `xml:"PASSWORD,omitempty"`
AuthDriver string `xml:"AUTH_DRIVER,omitempty"`
Enabled int `xml:"ENABLED,omitempty"`
LoginTokens []LoginToken `xml:"LOGIN_TOKEN,omitempty"`
Template dyn.Template `xml:"TEMPLATE"`
}
// User represents an OpenNebula user
type User struct {
UserShort
// Variable part between one.userpool.info and one.user.info
shared.QuotasList
DefaultUserQuotas shared.QuotasList `xml:"DEFAULT_USER_QUOTAS"`
}
type LoginToken struct {
Token string `xml:"TOKEN"`
ExpirationTime int `xml:"EXPIRATION_TIME"`
EGID int `xml:"EGID"`
}