diff --git a/src/main/java/com/threerings/crowd/data/CrowdPermissionPolicy.java b/src/main/java/com/threerings/crowd/data/CrowdPermissionPolicy.java index 10d43f49e..7c6387c4d 100644 --- a/src/main/java/com/threerings/crowd/data/CrowdPermissionPolicy.java +++ b/src/main/java/com/threerings/crowd/data/CrowdPermissionPolicy.java @@ -21,30 +21,23 @@ package com.threerings.crowd.data; -import com.google.inject.Inject; -import com.google.inject.Singleton; - import com.threerings.presents.data.ClientObject; import com.threerings.presents.data.Permission; import com.threerings.presents.data.PermissionPolicy; import com.threerings.crowd.chat.data.ChatCodes; -import com.threerings.crowd.server.BodyLocator; /** - * Implements some Crowd permissions. + * Implements some Crowd permissions. Note: this is stored inside a {@link BodyObject} and + * will only ever be called by a BodyObject. It is sent over the wire and must be usable on the + * client and server. */ -@Singleton public class CrowdPermissionPolicy extends PermissionPolicy { @Override // from PermissionPolicy public String checkAccess (ClientObject clobj, Permission perm, Object context) { - BodyObject body = _locator.forClient(clobj); - if (body == null) { - return super.checkAccess(clobj, perm, context); - } - + BodyObject body = (BodyObject)clobj; if (perm == ChatCodes.BROADCAST_ACCESS) { return body.getTokens().isAdmin() ? null : ACCESS_DENIED; } else if (perm == ChatCodes.CHAT_ACCESS) { @@ -53,6 +46,4 @@ public class CrowdPermissionPolicy extends PermissionPolicy return super.checkAccess(clobj, perm, context); } } - - @Inject protected transient BodyLocator _locator; } diff --git a/src/main/java/com/threerings/crowd/server/CrowdClientResolver.java b/src/main/java/com/threerings/crowd/server/CrowdClientResolver.java index af8449de2..1a087a904 100644 --- a/src/main/java/com/threerings/crowd/server/CrowdClientResolver.java +++ b/src/main/java/com/threerings/crowd/server/CrowdClientResolver.java @@ -21,10 +21,6 @@ package com.threerings.crowd.server; -import com.google.inject.Inject; -import com.google.inject.Injector; -import com.google.inject.Singleton; - import com.threerings.presents.data.ClientObject; import com.threerings.presents.data.PermissionPolicy; import com.threerings.presents.server.ClientLocal; @@ -36,7 +32,6 @@ import com.threerings.crowd.data.CrowdPermissionPolicy; /** * Used to configure crowd-specific client object data. */ -@Singleton public class CrowdClientResolver extends ClientResolver { @Override // from ClientResolver @@ -54,8 +49,6 @@ public class CrowdClientResolver extends ClientResolver @Override // from ClientResolver public PermissionPolicy createPermissionPolicy () { - return _injector.getInstance(CrowdPermissionPolicy.class); + return new CrowdPermissionPolicy(); } - - @Inject protected Injector _injector; }