From 35df145846996133c7bc0a6c748342ba203215bf Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Wed, 20 Mar 2002 03:23:00 +0000 Subject: [PATCH] Added the ability to set up a default access controller which is used (by default) for all objects created in the system. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1136 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../presents/server/PresentsDObjectMgr.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/java/com/threerings/presents/server/PresentsDObjectMgr.java b/src/java/com/threerings/presents/server/PresentsDObjectMgr.java index 802e33f05..8fcee0015 100644 --- a/src/java/com/threerings/presents/server/PresentsDObjectMgr.java +++ b/src/java/com/threerings/presents/server/PresentsDObjectMgr.java @@ -1,5 +1,5 @@ // -// $Id: PresentsDObjectMgr.java,v 1.23 2002/02/09 07:50:37 mdb Exp $ +// $Id: PresentsDObjectMgr.java,v 1.24 2002/03/20 03:23:00 mdb Exp $ package com.threerings.presents.server; @@ -42,6 +42,17 @@ public class PresentsDObjectMgr implements RootDObjectManager _objects.put(0, new DObject()); } + /** + * Sets up an access controller that will be provided to any + * distributed objects created on the server. The controllers can + * subsequently be overridden if desired, but a default controller is + * useful for implementing basic access control policies. + */ + public void setDefaultAccessController (AccessController controller) + { + _defaultController = controller; + } + // inherit documentation from the interface public void createObject (Class dclass, Subscriber target) { @@ -492,6 +503,8 @@ public class PresentsDObjectMgr implements RootDObjectManager // initialize this object obj.setOid(oid); obj.setManager(PresentsDObjectMgr.this); + obj.setAccessController(_defaultController); + // insert it into the table _objects.put(oid, obj); @@ -685,6 +698,10 @@ public class PresentsDObjectMgr implements RootDObjectManager /** Used to track oid list references of distributed objects. */ protected HashIntMap _refs = new HashIntMap(); + /** The default access controller to use when creating distributed + * objects. */ + protected AccessController _defaultController; + /** The default size of an oid list refs vector. */ protected static final int DEFREFVEC_SIZE = 4;