|
|
@@ -429,12 +429,7 @@ func (as *authStore) RoleRevokePermission(r *pb.AuthRoleRevokePermissionRequest)
|
|
|
return nil, ErrPermissionNotGranted
|
|
|
}
|
|
|
|
|
|
- marshaledRole, merr := updatedRole.Marshal()
|
|
|
- if merr != nil {
|
|
|
- return nil, merr
|
|
|
- }
|
|
|
-
|
|
|
- tx.UnsafePut(authRolesBucketName, updatedRole.Name, marshaledRole)
|
|
|
+ putRole(tx, updatedRole)
|
|
|
|
|
|
// TODO(mitake): currently single role update invalidates every cache
|
|
|
// It should be optimized.
|
|
|
@@ -486,12 +481,7 @@ func (as *authStore) RoleAdd(r *pb.AuthRoleAddRequest) (*pb.AuthRoleAddResponse,
|
|
|
Name: []byte(r.Name),
|
|
|
}
|
|
|
|
|
|
- marshaledRole, err := newRole.Marshal()
|
|
|
- if err != nil {
|
|
|
- return nil, err
|
|
|
- }
|
|
|
-
|
|
|
- tx.UnsafePut(authRolesBucketName, []byte(r.Name), marshaledRole)
|
|
|
+ putRole(tx, newRole)
|
|
|
|
|
|
plog.Noticef("Role %s is created", r.Name)
|
|
|
|
|
|
@@ -548,13 +538,7 @@ func (as *authStore) RoleGrantPermission(r *pb.AuthRoleGrantPermissionRequest) (
|
|
|
sort.Sort(permSlice(role.KeyPermission))
|
|
|
}
|
|
|
|
|
|
- marshaledRole, merr := role.Marshal()
|
|
|
- if merr != nil {
|
|
|
- plog.Errorf("failed to marshal updated role %s: %s", r.Name, merr)
|
|
|
- return nil, merr
|
|
|
- }
|
|
|
-
|
|
|
- tx.UnsafePut(authRolesBucketName, []byte(r.Name), marshaledRole)
|
|
|
+ putRole(tx, role)
|
|
|
|
|
|
// TODO(mitake): currently single role update invalidates every cache
|
|
|
// It should be optimized.
|
|
|
@@ -676,6 +660,15 @@ func getRole(tx backend.BatchTx, rolename string) *authpb.Role {
|
|
|
return role
|
|
|
}
|
|
|
|
|
|
+func putRole(tx backend.BatchTx, role *authpb.Role) {
|
|
|
+ b, err := role.Marshal()
|
|
|
+ if err != nil {
|
|
|
+ plog.Panicf("failed to marshal role struct (name: %s): %s", role.Name, err)
|
|
|
+ }
|
|
|
+
|
|
|
+ tx.UnsafePut(authRolesBucketName, []byte(role.Name), b)
|
|
|
+}
|
|
|
+
|
|
|
func (as *authStore) isAuthEnabled() bool {
|
|
|
as.enabledMu.RLock()
|
|
|
defer as.enabledMu.RUnlock()
|