[Opensim-dev] Proposed feature addition to OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs (patch included)

Justin Clark-Casey jjustincc at googlemail.com
Sat May 28 00:08:05 UTC 2011


Yes, please could you consolidate the patches (from a brief look it appears that later ones are now editing earlier 
ones) and attach to a mantis, which should be in patch included state.

The best way to generate a suitable patch is to use

git am <commit uuid>^

on the command line.

On 27/05/11 02:01, James Stallings II wrote:
> Just a quick apology to the list for the oldskool diff, Melanie_T tells me I should use udiff, and next time, I will.
>
> Cheers!
> James/Hiro
>
> On Thu, May 26, 2011 at 6:19 PM, James Stallings II <james.stallings at gmail.com <mailto:james.stallings at gmail.com>> wrote:
>
>     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.
>
>     This, however, actually works:
>
>     1103d1102
>     <
>     1117,1125c1116,1125
>     <
>     <                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;
>      >                         }
>      >                     }
>     1128d1127
>     <
>     1237,1242c1236,1237
>     <             //  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) requestingClient.Scene;
>     <             bool is_god = c_scene.Permissions.IsGod(requestingClient.AgentId);
>     <
>     <             if(is_god) {
>     ---
>      >             if (requestingClient.AgentId != dataForAgentID)
>      >             {
>     1248c1243
>     <                 membershipArray = membershipData.ToArray();
>     ---
>      >                 membershipArray = membershipData.FindAll(showInProfile).ToArray();
>     1252,1265c1247
>     <
>     <                 if (requestingClient.AgentId != dataForAgentID)
>     <                 {
>     <                     Predicate<GroupMembershipData> showInProfile = delegate(GroupMembershipData membership)
>     <                     {
>     <                         return membership.ListInProfile;
>     <                     };
>     <
>     <                     membershipArray = membershipData.FindAll(showInProfile).ToArray();
>     <                 }
>     <                 else
>     <                 {
>     <                     membershipArray = membershipData.ToArray();
>     <                 }
>     ---
>      >                 membershipArray = membershipData.ToArray();
>     1266a1249
>      >
>
>     On Thu, May 26, 2011 at 11:36 AM, James Stallings II <james.stallings at gmail.com <mailto:james.stallings at gmail.com>>
>     wrote:
>
>         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
>         <http://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
>
>
>
>
>     --
>     ===================================
>     http://simhost.com http://osgrid.org
>     http://twitter.com/jstallings2
>     http://www.linkedin.com/pub/5/770/a49
>
>
>
>
> --
> ===================================
> http://simhost.com http://osgrid.org
> http://twitter.com/jstallings2
> http://www.linkedin.com/pub/5/770/a49
>
>
>
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev


-- 
Justin Clark-Casey (justincc)
http://justincc.org/blog
http://twitter.com/justincc



More information about the Opensim-dev mailing list