<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">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 class="Apple-tab-span" style="white-space:pre">     </span>                if (GetRequestingAgentID(remoteClient) != dataForAgentID)</div>
<div><         <span class="Apple-tab-span" style="white-space:pre"> </span>        {</div><div><                 <span class="Apple-tab-span" style="white-space:pre">       </span>    if (!membership.ListInProfile)</div>
<div>< <span class="Apple-tab-span" style="white-space:pre"> </span>                    {</div><div><         <span class="Apple-tab-span" style="white-space:pre">   </span>                // If we're sending group info to remoteclient about another agent, </div>
<div><                 <span class="Apple-tab-span" style="white-space:pre"> </span>        // filter out groups the other agent doesn't want to share.</div><div><                         <span class="Apple-tab-span" style="white-space:pre"> </span>continue;</div>
<div>< <span class="Apple-tab-span" style="white-space:pre"> </span>                    }</div><div><         <span class="Apple-tab-span" style="white-space:pre">   </span>        }</div><div>< <span class="Apple-tab-span" style="white-space:pre">               </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><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>