fix: data error

Signed-off-by: hongming <talonwan@yunify.com>
This commit is contained in:
hongming
2018-12-06 17:14:15 +08:00
parent e40833c2a7
commit 7b1cbabb4f
7 changed files with 93 additions and 29 deletions

View File

@@ -126,15 +126,9 @@ func GetUser(name string) (*User, error) {
// Get rules
func WorkspaceRoleRules(workspace string, roleName string) (*v1.ClusterRole, []Rule, error) {
lister, err := controllers.GetLister(controllers.ClusterRoles)
clusterRoleName := fmt.Sprintf("system:%s:%s", workspace, roleName)
if err != nil {
return nil, nil, err
}
clusterRoleLister := lister.(v12.ClusterRoleLister)
workspaceRole, err := clusterRoleLister.Get(fmt.Sprintf("system:%s:%s", workspace, roleName))
workspaceRole, err := GetClusterRole(clusterRoleName)
if err != nil {
return nil, nil, err
@@ -232,7 +226,7 @@ func GetRole(namespace string, name string) (*v1.Role, error) {
if err != nil {
return nil, err
}
return role, nil
return role.DeepCopy(), nil
}
func GetWorkspaceUsers(workspace string, workspaceRole string) ([]string, error) {
@@ -268,7 +262,7 @@ func GetClusterRoleBindings(name string) ([]v1.ClusterRoleBinding, error) {
clusterRoleBindingLister := lister.(v12.ClusterRoleBindingLister)
clusterRoleBindingList, err := clusterRoleBindingLister.List(labels.Everything())
clusterRoleBindings, err := clusterRoleBindingLister.List(labels.Everything())
if err != nil {
return nil, err
@@ -276,9 +270,9 @@ func GetClusterRoleBindings(name string) ([]v1.ClusterRoleBinding, error) {
items := make([]v1.ClusterRoleBinding, 0)
for _, roleBinding := range clusterRoleBindingList {
if roleBinding.RoleRef.Name == name {
items = append(items, *roleBinding)
for _, clusterRoleBinding := range clusterRoleBindings {
if clusterRoleBinding.RoleRef.Name == name {
items = append(items, *clusterRoleBinding)
}
}
@@ -325,7 +319,7 @@ func GetClusterRole(name string) (*v1.ClusterRole, error) {
if err != nil {
return nil, err
}
return role, nil
return role.DeepCopy(), nil
}
func GetRoles(namespace string, username string) ([]v1.Role, error) {
@@ -381,9 +375,9 @@ func GetRoles(namespace string, username string) ([]v1.Role, error) {
} else {
if subject.Kind == v1.UserKind && subject.Name == username {
rule, err := roleLister.Roles(roleBinding.Namespace).Get(roleBinding.RoleRef.Name)
role, err := roleLister.Roles(roleBinding.Namespace).Get(roleBinding.RoleRef.Name)
if err == nil {
roles = append(roles, *rule)
roles = append(roles, *role)
break
} else if apierrors.IsNotFound(err) {
glog.Infoln(err.Error())
@@ -436,6 +430,7 @@ func GetClusterRoles(username string) ([]v1.ClusterRole, error) {
if roleBinding.RoleRef.Kind == ClusterRoleKind {
role, err := clusterRoleLister.Get(roleBinding.RoleRef.Name)
if err == nil {
role = role.DeepCopy()
if role.Annotations == nil {
role.Annotations = make(map[string]string, 0)
}