Update PermissionHolderSubjectData#save code

This commit is contained in:
Luck 2019-03-08 19:56:07 +00:00
parent 0a50df6557
commit 12b861db3f
No known key found for this signature in database
GPG Key ID: EFA9B3EC5FD90F8B

View File

@ -127,7 +127,7 @@ public class PermissionHolderSubjectData implements LPSubjectData {
() -> this.holder.unsetPermission(node), () -> this.holder.unsetPermission(node),
() -> this.holder.unsetTransientPermission(node) () -> this.holder.unsetTransientPermission(node)
); );
return objectSave(this.holder).thenApply(v -> true); return save(this.holder).thenApply(v -> true);
} }
Node node = NodeFactory.builder(permission).setValue(tristate.asBoolean()).withExtraContext(contexts).build(); Node node = NodeFactory.builder(permission).setValue(tristate.asBoolean()).withExtraContext(contexts).build();
@ -143,7 +143,7 @@ public class PermissionHolderSubjectData implements LPSubjectData {
this.holder.setTransientPermission(node); this.holder.setTransientPermission(node);
} }
); );
return objectSave(this.holder).thenApply(v -> true); return save(this.holder).thenApply(v -> true);
} }
@Override @Override
@ -161,7 +161,7 @@ public class PermissionHolderSubjectData implements LPSubjectData {
this.service.getPlugin().getUserManager().giveDefaultIfNeeded(((User) this.holder), false); this.service.getPlugin().getUserManager().giveDefaultIfNeeded(((User) this.holder), false);
} }
return objectSave(this.holder).thenApply(v -> true); return save(this.holder).thenApply(v -> true);
} }
@Override @Override
@ -187,7 +187,7 @@ public class PermissionHolderSubjectData implements LPSubjectData {
this.service.getPlugin().getUserManager().giveDefaultIfNeeded(((User) this.holder), false); this.service.getPlugin().getUserManager().giveDefaultIfNeeded(((User) this.holder), false);
} }
return objectSave(this.holder).thenApply(v -> true); return save(this.holder).thenApply(v -> true);
} }
@Override @Override
@ -238,7 +238,7 @@ public class PermissionHolderSubjectData implements LPSubjectData {
return CompletableFuture.completedFuture(false); return CompletableFuture.completedFuture(false);
} }
return objectSave(this.holder).thenApply(v -> true); return save(this.holder).thenApply(v -> true);
} }
@Override @Override
@ -263,7 +263,7 @@ public class PermissionHolderSubjectData implements LPSubjectData {
return CompletableFuture.completedFuture(false); return CompletableFuture.completedFuture(false);
} }
return objectSave(this.holder).thenApply(v -> true); return save(this.holder).thenApply(v -> true);
} }
@Override @Override
@ -284,7 +284,7 @@ public class PermissionHolderSubjectData implements LPSubjectData {
return CompletableFuture.completedFuture(false); return CompletableFuture.completedFuture(false);
} }
return objectSave(this.holder).thenApply(v -> true); return save(this.holder).thenApply(v -> true);
} }
@Override @Override
@ -307,7 +307,7 @@ public class PermissionHolderSubjectData implements LPSubjectData {
return CompletableFuture.completedFuture(false); return CompletableFuture.completedFuture(false);
} }
return objectSave(this.holder).thenApply(v -> true); return save(this.holder).thenApply(v -> true);
} }
@Override @Override
@ -403,7 +403,7 @@ public class PermissionHolderSubjectData implements LPSubjectData {
() -> this.holder.setPermission(node), () -> this.holder.setPermission(node),
() -> this.holder.setTransientPermission(node) () -> this.holder.setTransientPermission(node)
); );
return objectSave(this.holder).thenApply(v -> true); return save(this.holder).thenApply(v -> true);
} }
@Override @Override
@ -427,7 +427,7 @@ public class PermissionHolderSubjectData implements LPSubjectData {
() -> this.holder.unsetTransientPermission(node) () -> this.holder.unsetTransientPermission(node)
)); ));
return objectSave(this.holder).thenApply(v -> true); return save(this.holder).thenApply(v -> true);
} }
@Override @Override
@ -448,7 +448,7 @@ public class PermissionHolderSubjectData implements LPSubjectData {
return CompletableFuture.completedFuture(false); return CompletableFuture.completedFuture(false);
} }
return objectSave(this.holder).thenApply(v -> true); return save(this.holder).thenApply(v -> true);
} }
@Override @Override
@ -466,21 +466,22 @@ public class PermissionHolderSubjectData implements LPSubjectData {
return CompletableFuture.completedFuture(false); return CompletableFuture.completedFuture(false);
} }
return objectSave(this.holder).thenApply(v -> true); return save(this.holder).thenApply(v -> true);
} }
private CompletableFuture<Void> objectSave(PermissionHolder t) { private CompletableFuture<Void> save(PermissionHolder t) {
// handle transient first // if the holder is a group, invalidate caches.
if (this.type == NodeMapType.TRANSIENT) { if (t.getType().isGroup()) {
// don't bother saving to primary storage. just refresh this.service.getPlugin().getGroupManager().invalidateAllGroupCaches();
if (t.getType().isGroup()) { this.service.getPlugin().getUserManager().invalidateAllUserCaches();
this.service.getPlugin().getGroupManager().invalidateAllGroupCaches(); return CompletableFuture.completedFuture(null);
this.service.getPlugin().getUserManager().invalidateAllUserCaches(); }
return CompletableFuture.completedFuture(null);
} // no further action required for transient types
if (this.type == NodeMapType.TRANSIENT) {
return CompletableFuture.completedFuture(null);
} }
// handle enduring
if (t.getType().isUser()) { if (t.getType().isUser()) {
User user = ((User) t); User user = ((User) t);
return this.service.getPlugin().getStorage().saveUser(user); return this.service.getPlugin().getStorage().saveUser(user);