[Opensim-dev] Parcel Access Enforcement

James Stallings II james.stallings at gmail.com
Thu Apr 10 14:01:56 UTC 2014


Greetings Devs :)

I have a use case that requires the unlikely and less than popular parcel
permissions access control featureset.

Historically speaking, this has not been an area of development that has
seen much love, and understandably so; none of us are particularly
interested in fully duplicating the operational envelope of the Second Life
experience. That coupled with the ability to deploy regions at whim, it is
no wonder no one wants to involve themselves particularly deeply with
making this work properly.

That being said, I have a need at present, and there is also the simple
fact that we have a dearth of UI components in the viewer we may well never
get shut of, and a lot of of unfinished and/or unpolished code in the repo
that touches on this functionality.

The short story is, it may be above the waterline, but there is a hole in
the boat, and one of my users is driving it headlong into the surf.

So much for metaphors.

I have heard a variety of conflicting reports about the state of this part
of the codebase; some say it works well; others say it should not be
counted on to work at all. The commit logs tell the tale that some have
taken an interest and are working diligently to eliminate certain bugs;
unfortunately, the work in progress has not yet brought the functionality
into a state where it is yet useful, at least according to my testing.

I'm not unwilling to undertake the work needed to bring this situation into
a more satisfactory light; indeed, I've already begun, and I need only a
little guidance today.

I have thoroughly instrumented the method "public void
EventManagerOnAvatarEnteringNewParcel(ScenePresence avatar, int
localLandID, UUID regionID)"
in the land management module, and was immediately confronted with a couple
of surprises:
First, when the code is called at all, it is called twice; and as far as I
can tell, it is called only after a successful login has been completed.
Neither does it seem to be called when an avatar teleports into the region.

Instead, the method "public bool TestLandRestrictions(UUID agentID, out
string reason, ref float posX, ref float posY)" is called from
"OpenSim/Region/Framework/Scenes/Scene.cs" and
"OpenSim/Region/Framework/Scenes/ScenePresence.cs", and mediates (rather
less than consistently) whether the avatar is allowed into the parcel on
the region.

Being aware that there are several ways for an avatar to enter a parcel,
which I will leave off enumerating at present, I would suggest that perhaps
I have some misapprehensions as to the proper stages of authentication at
login-time.

So my question is this: should both of these functions come into play as an
avatar enters a region (and consequently, a parcel)? or should there be a
single methoid conducting these presence permission checks?

Please advise at your convenience :)

Many thanks and cheers
James/Hiro


-- 
===================================
http://osgrid.org/
http://simhost.com
http://twitter.com/jstallings2
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20140410/b24efcf9/attachment-0001.html>


More information about the Opensim-dev mailing list