<div dir="ltr">Subsequent work (instrumentation to Scene) shows that the permissions checking code is also being called twice there.<div><br></div><div>Cheers</div><div>James</div><div><br></div></div><div class="gmail_extra">
<br><br><div class="gmail_quote">On Thu, Apr 10, 2014 at 9:30 AM, James Stallings II <span dir="ltr"><<a href="mailto:james.stallings@gmail.com" target="_blank">james.stallings@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">After some further exploration, I have seen where the method calls taking precedence from out of Scene are handling ViaLogin; but they are also doing some of the same lifting performed in the Land Management module. This seems to be duplication of effort, if not duplication of code; and is certainly less elegant than I would hope to find in our codebase (in an ideal world ;)<div>

<br></div><div>This is likely the result of the ad-hoc nature of the development life of the project over the years; I can see the scene code being a good deal older than the Land Management module.</div><div><br></div><div>

I'll be working with this throughout the day, hoping to improve the code as I'm able; your thoughts, advice and commentary are solicited and appreciated.</div><div><br></div><div>Cheers</div><span class="HOEnZb"><font color="#888888"><div>
James</div><div><br>
</div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Apr 10, 2014 at 9:01 AM, James Stallings II <span dir="ltr"><<a href="mailto:james.stallings@gmail.com" target="_blank">james.stallings@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Greetings Devs :)<div><br></div><div>I have a use case that requires the unlikely and less than popular parcel permissions access control featureset.</div>

<div><br></div><div>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.</div>


<div><br></div><div>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.</div>


<div><br></div><div>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.</div><div><div><br></div><div>So much for metaphors.</div>

<div>
<br></div><div>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.</div>


<div><br></div><div>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.</div><div><br></div>

<div>
I have thoroughly instrumented the method "public void EventManagerOnAvatarEnteringNewParcel(ScenePresence avatar, int localLandID, UUID regionID)"</div><div>in the land management module, and was immediately confronted with a couple of surprises:</div>


<div>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.</div>


<div><br></div><div>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.</div>


<div><br></div><div>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.</div>


<div><br></div><div>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?</div>


<div><br></div><div>Please advise at your convenience :)</div><div><br></div><div>Many thanks and cheers</div><div>James/Hiro</div><span><font color="#888888"><div><br></div><div><br></div>-- <br><div dir="ltr">
===================================<div>
<a href="http://osgrid.org/" target="_blank">http://osgrid.org/</a><br><a href="http://simhost.com" target="_blank">http://simhost.com</a><br><a href="http://twitter.com/jstallings2" target="_blank">http://twitter.com/jstallings2</a><br>


<br></div></div>
</font></span></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">===================================<div><a href="http://osgrid.org/" target="_blank">http://osgrid.org/</a><br><a href="http://simhost.com" target="_blank">http://simhost.com</a><br>

<a href="http://twitter.com/jstallings2" target="_blank">http://twitter.com/jstallings2</a><br><br></div></div>
</div>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr">===================================<div><a href="http://osgrid.org/" target="_blank">http://osgrid.org/</a><br><a href="http://simhost.com" target="_blank">http://simhost.com</a><br>
<a href="http://twitter.com/jstallings2" target="_blank">http://twitter.com/jstallings2</a><br><br></div></div>
</div>