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

James Stallings II james.stallings at gmail.com
Fri May 27 01:01:49 UTC 2011


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> 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> 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 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20110526/cc3cd5a2/attachment-0001.html>


More information about the Opensim-dev mailing list