Greetings, OpenSimulator developers :)

I'm writing to propose the addition of certain functionality
to OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs, to
wit:

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.

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://github.com/JamesStallings/opensim.git 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.


Many thanks and cheers!

James Stallings aka Hiro Protagonist


Diff follows:

1103,1107d1102
<             //  c_scene and property accessor 'is_god' are in support of
the opertions to bypass 'hidden' group attributes for
<             // those with a GodLike aspect.
<             Scene c_scene = (Scene) remoteClient.Scene;
<             bool is_god = c_scene.Permissions.IsGod(remoteClient.AgentId);
<
1121,1138c1116,1126
< //              bypass the 'hidden' attributes of groups for those who
have
< //              a GodLike aspect
< //
< //              Big shout out to Dan Banner for showing me his running
proof-of-concept and endorsing this idea as meaningful work
< //              Another big shout out to BlueWall Slade for helping me
chase down all the elements required to properly access
< //              Scene and IClientAPI properties.  JS aka HP
<                 if (!is_god)
<                 {
<                 if (GetRequestingAgentID(remoteClient) != dataForAgentID)
<                 {
<                     if (!membership.ListInProfile)
<                     {
<                         // If we're sending group info to remoteclient
about another agent,
<                         // filter out groups the other agent doesn't want
to share.
<                         continue;
<                     }
<                 }
< }
---
>                 if
(!remoteClient.Scene.Permissions.IsGod(remoteClient.AgentID))
>                     if (GetRequestingAgentID(remoteClient) !=
dataForAgentID)
>                     {
>                         if (!membership.ListInProfile)
>                         {
>                             // If we're sending group info to remoteclient
about another agent,
>                             // filter out groups the other agent doesn't
want to share.
>                             continue;
>                         }
>                     }
>                 }


-- 
===================================
http://simhost.com http://osgrid.org
http://twitter.com/jstallings2
http://www.linkedin.com/pub/5/770/a49
1103,1107d1102
<             //  c_scene and property accessor 'is_god' are in support of the opertions to bypass 'hidden' group attributes for 
<             // those with a GodLike aspect.
<             Scene c_scene = (Scene) remoteClient.Scene;
<             bool is_god = c_scene.Permissions.IsGod(remoteClient.AgentId);
<             
1121,1138c1116,1126
< //              bypass the 'hidden' attributes of groups for those who have 
< //              a GodLike aspect
< //
< //              Big shout out to Dan Banner for showing me his running proof-of-concept and endorsing this idea as meaningful work
< //              Another big shout out to BlueWall Slade for helping me chase down all the elements required to properly access
< //              Scene and IClientAPI properties.  JS aka HP
<                 if (!is_god)
<                 {
< 	                if (GetRequestingAgentID(remoteClient) != dataForAgentID)
<         	        {
<                 	    if (!membership.ListInProfile)
< 	                    {
<         	                // If we're sending group info to remoteclient about another agent, 
<                 	        // filter out groups the other agent doesn't want to share.
<                         	continue;
< 	                    }
<         	        }
< 		}
---
>                 if (!remoteClient.Scene.Permissions.IsGod(remoteClient.AgentID))
>                     if (GetRequestingAgentID(remoteClient) != dataForAgentID)
>                     {
>                         if (!membership.ListInProfile)
>                         {
>                             // If we're sending group info to remoteclient about another agent, 
>                             // filter out groups the other agent doesn't want to share.
>                             continue;
>                         }
>                     }
>                 }
_______________________________________________
Opensim-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/opensim-dev

Reply via email to