mirror of
https://github.com/rancher/types.git
synced 2025-07-15 06:01:35 +00:00
Auth changes
This commit is contained in:
parent
44723b98e4
commit
82755ad33f
@ -8,42 +8,44 @@ type Token struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||
|
||||
TokenID string `json:"tokenId,omitempty"`
|
||||
UserIdentity Identity `json:"userIdentity,omitempty"`
|
||||
GroupIdentities []Identity `json:"groupIdentities,omitempty"`
|
||||
ProviderInfo map[string]string `json:"providerInfo,omitempty"`
|
||||
User string `json:"user,omitempty"`
|
||||
ExternalID string `json:"externalId,omitempty"`
|
||||
AuthProvider string `json:"authProvider,omitempty"`
|
||||
TTLMillis string `json:"ttl,omitempty"`
|
||||
IdentityRefreshTTLMillis string `json:"identityRefreshTTL,omitempty"`
|
||||
LastUpdateTime string `json:"lastUpdateTime,omitempty"`
|
||||
IsDerived bool `json:"isDerived,omitempty"`
|
||||
Description string `json:"description,omitempty"`
|
||||
UserPrincipal Principal `json:"userPrincipal" norman:"type=reference[Principal]"`
|
||||
GroupPrincipals []Principal `json:"groupPrincipals" norman:"type=array[reference[Principal]]"`
|
||||
ProviderInfo map[string]string `json:"providerInfo,omitempty"`
|
||||
UserID string `json:"userId" norman:"type=reference[User]"`
|
||||
AuthProvider string `json:"authProvider"`
|
||||
TTLMillis int `json:"ttl"`
|
||||
LastUpdateTime string `json:"lastUpdateTime"`
|
||||
IsDerived bool `json:"isDerived"`
|
||||
Description string `json:"description"`
|
||||
}
|
||||
|
||||
type User struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||
|
||||
Secret string `json:"secret,omitempty"`
|
||||
ExternalID string `json:"externalId,omitempty"`
|
||||
DisplayName string `json:"displayName,omitempty"`
|
||||
UserName string `json:"userName,omitempty"`
|
||||
Password string `json:"password,omitempty"`
|
||||
MustChangePassword bool `json:"mustChangePassword,omitempty"`
|
||||
PrincipalIDs []string `json:"principalIds,omitempty" norman:"type=array[reference[Principal]]"`
|
||||
}
|
||||
|
||||
type Group struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||
|
||||
DisplayName string `json:"displayName,omitempty"`
|
||||
}
|
||||
|
||||
type GroupMember struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||
|
||||
GroupName string `json:"groupName,omitempty" norman:"type=reference[group]"`
|
||||
ExternalID string `json:"externalId,omitempty"`
|
||||
GroupName string `json:"groupName,omitempty" norman:"type=reference[group]"`
|
||||
PrincipalID string `json:"principalId,omitempty" norman:"type=reference[Principal]"`
|
||||
}
|
||||
|
||||
type Identity struct {
|
||||
type Principal struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ObjectMeta `json:"metadata,omitempty"`
|
||||
|
||||
@ -59,12 +61,11 @@ type Identity struct {
|
||||
|
||||
//LoginInput structure defines all properties that can be sent by client to create a token
|
||||
type LoginInput struct {
|
||||
TTLMillis string `json:"ttl,omitempty"`
|
||||
IdentityRefreshTTLMillis string `json:"identityRefreshTTL,omitempty"`
|
||||
Description string `json:"description,omitempty"`
|
||||
ResponseType string `json:"responseType,omitempty"` //json or cookie
|
||||
LocalCredential LocalCredential `json:"localCredential, omitempty"`
|
||||
GithubCredential GithubCredential `json:"githubCredential, omitempty"`
|
||||
TTLMillis int `json:"ttl,omitempty"`
|
||||
Description string `json:"description,omitempty"`
|
||||
ResponseType string `json:"responseType,omitempty"` //json or cookie
|
||||
LocalCredential LocalCredential `json:"localCredential, omitempty"`
|
||||
GithubCredential GithubCredential `json:"githubCredential, omitempty"`
|
||||
}
|
||||
|
||||
//LocalCredential stores the local auth creds
|
||||
|
@ -96,16 +96,29 @@ func authzTypes(schemas *types.Schemas) *types.Schemas {
|
||||
&m.Move{From: "subject/namespace", To: "subjectNamespace"},
|
||||
&m.Drop{Field: "subject"},
|
||||
).
|
||||
AddMapperForType(&Version, v3.ClusterRoleTemplateBinding{},
|
||||
&m.Move{From: "subject/name", To: "subjectName"},
|
||||
&m.Move{From: "subject/kind", To: "subjectKind"},
|
||||
&m.Move{From: "subject/namespace", To: "subjectNamespace"},
|
||||
&m.Drop{Field: "subject"},
|
||||
).
|
||||
MustImportAndCustomize(&Version, v3.Project{}, func(schema *types.Schema) {
|
||||
schema.SubContext = "projects"
|
||||
}).
|
||||
MustImport(&Version, v3.RoleTemplate{}).
|
||||
MustImport(&Version, v3.PodSecurityPolicyTemplate{}).
|
||||
MustImport(&Version, v3.ClusterRoleTemplateBinding{}).
|
||||
MustImportAndCustomize(&Version, v3.ClusterRoleTemplateBinding{}, func(schema *types.Schema) {
|
||||
schema.MustCustomizeField("subjectKind", func(field types.Field) types.Field {
|
||||
field.Type = "enum"
|
||||
field.Options = []string{"User", "Group", "ServiceAccount", "Principal"}
|
||||
field.Nullable = false
|
||||
return field
|
||||
})
|
||||
}).
|
||||
MustImportAndCustomize(&Version, v3.ProjectRoleTemplateBinding{}, func(schema *types.Schema) {
|
||||
schema.MustCustomizeField("subjectKind", func(field types.Field) types.Field {
|
||||
field.Type = "enum"
|
||||
field.Options = []string{"User", "Group", "ServiceAccount"}
|
||||
field.Options = []string{"User", "Group", "ServiceAccount", "Principal"}
|
||||
field.Nullable = false
|
||||
return field
|
||||
})
|
||||
@ -131,11 +144,13 @@ func machineTypes(schemas *types.Schemas) *types.Schemas {
|
||||
|
||||
func authnTypes(schemas *types.Schemas) *types.Schemas {
|
||||
return schemas.
|
||||
AddMapperForType(&Version, v3.User{}, m.DisplayName{}).
|
||||
AddMapperForType(&Version, v3.Group{}, m.DisplayName{}).
|
||||
MustImport(&Version, v3.Token{}).
|
||||
MustImport(&Version, v3.User{}).
|
||||
MustImport(&Version, v3.Group{}).
|
||||
MustImport(&Version, v3.GroupMember{}).
|
||||
MustImport(&Version, v3.Identity{}).
|
||||
MustImport(&Version, v3.Principal{}).
|
||||
MustImport(&Version, v3.LoginInput{}).
|
||||
MustImport(&Version, v3.LocalCredential{}).
|
||||
MustImport(&Version, v3.GithubCredential{})
|
||||
|
Loading…
Reference in New Issue
Block a user