My apologies, but the previous code was completely ineffective on testing. I know, it should be tested before submission. Mea Culpa, it looked really good.<div><br></div><div>This, however, actually works:</div><div><br></div>
<div><div>1103d1102</div><div>< </div><div>1117,1125c1116,1125</div><div>< </div><div>< if (GetRequestingAgentID(remoteClient) != dataForAgentID)</div><div>< {</div><div>< if (!membership.ListInProfile)</div>
<div>< {</div><div>< // If we're sending group info to remoteclient about another agent,</div><div>< // filter out groups the other agent doesn't want to share.</div>
<div>< continue;</div><div>< }</div><div>---</div><div>> if (!remoteClient.Scene.Permissions.IsGod(remoteClient.AgentID))</div><div>> if (GetRequestingAgentID(remoteClient) != dataForAgentID)</div>
<div>> {</div><div>> if (!membership.ListInProfile)</div><div>> {</div><div>> // If we're sending group info to remoteclient about another agent, </div>
<div>> // filter out groups the other agent doesn't want to share.</div><div>> continue;</div><div>> }</div><div>> }</div>
<div>1128d1127</div><div>< </div><div>1237,1242c1236,1237</div><div>< // c_scene and property accessor 'is_god' are in support of the opertions to bypass 'hidden' group attributes for</div>
<div>< // those with a GodLike aspect.</div><div>< Scene c_scene = (Scene) requestingClient.Scene;</div><div>< bool is_god = c_scene.Permissions.IsGod(requestingClient.AgentId);</div>
<div>< </div><div>< if(is_god) {</div><div>---</div><div>> if (requestingClient.AgentId != dataForAgentID)</div><div>> {</div><div>1248c1243</div><div>< membershipArray = membershipData.ToArray();</div>
<div>---</div><div>> membershipArray = membershipData.FindAll(showInProfile).ToArray();</div><div>1252,1265c1247</div><div>< </div><div>< if (requestingClient.AgentId != dataForAgentID)</div>
<div>< {</div><div>< Predicate<GroupMembershipData> showInProfile = delegate(GroupMembershipData membership)</div><div>< {</div><div>< return membership.ListInProfile;</div>
<div>< };</div><div>< </div><div>< membershipArray = membershipData.FindAll(showInProfile).ToArray();</div><div>< }</div><div>< else</div>
<div>< {</div><div>< membershipArray = membershipData.ToArray();</div><div>< }</div><div>---</div><div>> membershipArray = membershipData.ToArray();</div>
<div>1266a1249</div><div>> </div><br><div class="gmail_quote">On Thu, May 26, 2011 at 11:36 AM, James Stallings II <span dir="ltr"><<a href="mailto:james.stallings@gmail.com">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>Greetings, OpenSimulator developers :)</div><div><br></div><div>I'm writing to propose the addition of certain functionality to OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs, to wit:</div>
<div>
<br></div><div>Present 'Hidden' groups and other related group detail to agents requesting such iniformation via CAPs as have assumed a 'godlike' aspect, or in other words, have successfully activated the administrative functionality in the client.</div>
<div><br></div><div>The changes to the substance of the code involve credits more than not; a diff is both attached and included for convenient review. A fork has been created on github at git://<a href="http://github.com/JamesStallings/opensim.git" target="_blank">github.com/JamesStallings/opensim.git</a> which contains the changes for convenience should contribution of source be accepted. I will also open a mantis on the topic for the sake of thoroughness and attach the diff there.</div>
<div><br></div><div><br></div><div>Many thanks and cheers!</div><div><br></div><div>James Stallings aka Hiro Protagonist</div><div><br></div><div><br></div><div>Diff follows:</div><div><br></div><div>1103,1107d1102</div>
<div>
< // c_scene and property accessor 'is_god' are in support of the opertions to bypass 'hidden' group attributes for </div><div>< // those with a GodLike aspect.</div><div>< Scene c_scene = (Scene) remoteClient.Scene;</div>
<div>< bool is_god = c_scene.Permissions.IsGod(remoteClient.AgentId);</div><div>< </div><div>1121,1138c1116,1126</div><div>< // bypass the 'hidden' attributes of groups for those who have </div>
<div>< // a GodLike aspect</div><div>< //</div><div>< // Big shout out to Dan Banner for showing me his running proof-of-concept and endorsing this idea as meaningful work</div><div>< // Another big shout out to BlueWall Slade for helping me chase down all the elements required to properly access</div>
<div>< // Scene and IClientAPI properties. JS aka HP</div><div>< if (!is_god)</div><div>< {</div><div>< <span style="white-space:pre-wrap"> </span> if (GetRequestingAgentID(remoteClient) != dataForAgentID)</div>
<div>< <span style="white-space:pre-wrap"> </span> {</div><div>< <span style="white-space:pre-wrap"> </span> if (!membership.ListInProfile)</div>
<div>< <span style="white-space:pre-wrap"> </span> {</div><div>< <span style="white-space:pre-wrap"> </span> // If we're sending group info to remoteclient about another agent, </div>
<div>< <span style="white-space:pre-wrap"> </span> // filter out groups the other agent doesn't want to share.</div><div>< <span style="white-space:pre-wrap"> </span>continue;</div>
<div>< <span style="white-space:pre-wrap"> </span> }</div><div>< <span style="white-space:pre-wrap"> </span> }</div><div>< <span style="white-space:pre-wrap"> </span>}</div>
<div>---</div><div>> if (!remoteClient.Scene.Permissions.IsGod(remoteClient.AgentID))</div><div>> if (GetRequestingAgentID(remoteClient) != dataForAgentID)</div><div>> {</div>
<div>> if (!membership.ListInProfile)</div><div>> {</div><div>> // If we're sending group info to remoteclient about another agent, </div>
<div>> // filter out groups the other agent doesn't want to share.</div><div>> continue;</div><div>> }</div><div>> }</div>
<div>> }</div><div><br></div><font color="#888888"><br>-- <br>===================================<br><a href="http://simhost.com" target="_blank">http://simhost.com</a> <a href="http://osgrid.org" target="_blank">http://osgrid.org</a><br>
<a href="http://twitter.com/jstallings2" target="_blank">http://twitter.com/jstallings2</a><br><a href="http://www.linkedin.com/pub/5/770/a49" target="_blank">http://www.linkedin.com/pub/5/770/a49</a><br>
</font></blockquote></div><br><br clear="all"><br>-- <br>===================================<br><a href="http://simhost.com" target="_blank">http://simhost.com</a> <a href="http://osgrid.org" target="_blank">http://osgrid.org</a><br>
<a href="http://twitter.com/jstallings2" target="_blank">http://twitter.com/jstallings2</a><br><a href="http://www.linkedin.com/pub/5/770/a49" target="_blank">http://www.linkedin.com/pub/5/770/a49</a><br>
</div>