Mel, Justin, Here is the file I produced with the git show <commit id> <file> command, untouched.
When will I ever learn LOL if this is the right stuff I'll get it into mantis at once. commit dd47b8b94e74a8ec793196ce7f3133565bc300bb Author: James Stallings aka Hiro Protagonist <[email protected]> Date: Fri May 27 19:57:51 2011 -0500 Add functionality to GodMode that allows the operator to view 'hidden' groups in profile - Thanks BlueWall and Dan Banner for all your assistance diff --git a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs index 1c791b9..05223e0 100644 --- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs +++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs @@ -1231,20 +1231,36 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups List<GroupMembershipData> membershipData = m_groupData.GetAgentGroupMemberships(requestingClient.AgentId, dataForAgentID); GroupMembershipData[] membershipArray; - if (requestingClient.AgentId != dataForAgentID) - { + // 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) { Predicate<GroupMembershipData> showInProfile = delegate(GroupMembershipData membership) { return membership.ListInProfile; }; - membershipArray = membershipData.FindAll(showInProfile).ToArray(); + membershipArray = membershipData.ToArray(); } else { - membershipArray = membershipData.ToArray(); - } + if (requestingClient.AgentId != dataForAgentID) + { + Predicate<GroupMembershipData> showInProfile = delegate(GroupMembershipData membership) + { + return membership.ListInProfile; + }; + + membershipArray = membershipData.FindAll(showInProfile).ToArray(); + } + else + { + membershipArray = membershipData.ToArray(); + } + } if (m_debugEnabled) { m_log.InfoFormat("[GROUPS]: Get group membership information for {0} requested by {1}", dataForAgentID, requestingClient.AgentId); @@ -1257,6 +1273,7 @@ namespace OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups return membershipArray; } + private void SendAgentDataUpdate(IClientAPI remoteClient, UUID dataForAgentID, UUID activeGroupID, string activeGroupName, ulong activeGroupPowers, string activeGroupTitle) { if (m_debugEnabled) m_log.DebugFormat("[GROUPS]: {0} called", System.Reflection.MethodBase.GetCurrentMethod().Name); Cheers and much thanks :) James On Fri, May 27, 2011 at 8:08 PM, Melanie <[email protected]> wrote: > This patch can be applied but is without author info. Maybe you > removed the author info lines? > > This is, however, a proper udiff. Thanks. > > Melanie > > On 28/05/2011 03:07, James Stallings II wrote: > > Justin, > > > > I'm actually using a couple of repos locally, so it was fairly simple to > > reset one to a point just before where I was working and simply update > that > > commit with my final changes, thus taking the failed work (and the patch > to > > the patch) out of the loop. > > > > As per your secondary instructions in skype, I used git show <commit ID> > > <file> to produce the following patch for > > OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs: > > > > --- a/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs > > +++ b/OpenSim/Region/OptionalModules/Avatar/XmlRpcGroups/GroupsModule.cs > > @@ -1231,20 +1231,36 @@ namespace > > OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups > > List<GroupMembershipData> membershipData = > > m_groupData.GetAgentGroupMemberships(requestingClient.AgentId, > > dataForAgentID); > > GroupMembershipData[] membershipArray; > > > > - if (requestingClient.AgentId != dataForAgentID) > > - { > > + // 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) { > > Predicate<GroupMembershipData> showInProfile = > > delegate(GroupMembershipData membership) > > { > > return membership.ListInProfile; > > }; > > > > - membershipArray = > > membershipData.FindAll(showInProfile).ToArray(); > > + membershipArray = membershipData.ToArray(); > > } > > else > > { > > - membershipArray = membershipData.ToArray(); > > - } > > > > + if (requestingClient.AgentId != dataForAgentID) > > + { > > + Predicate<GroupMembershipData> showInProfile = > > delegate(GroupMembershipData membership) > > + { > > + return membership.ListInProfile; > > + }; > > + > > + membershipArray = > > membershipData.FindAll(showInProfile).ToArray(); > > + } > > + else > > + { > > + membershipArray = membershipData.ToArray(); > > + } > > + } > > if (m_debugEnabled) > > { > > m_log.InfoFormat("[GROUPS]: Get group membership > > information for {0} requested by {1}", dataForAgentID, > > requestingClient.AgentId); > > @@ -1257,6 +1273,7 @@ namespace > > OpenSim.Region.OptionalModules.Avatar.XmlRpcGroups > > return membershipArray; > > } > > > > + > > private void SendAgentDataUpdate(IClientAPI remoteClient, UUID > > dataForAgentID, UUID activeGroupID, string activeGroupName, ulong > > activeGroupPowers, string activeGroupTitle) > > { > > if (m_debugEnabled) m_log.DebugFormat("[GROUPS]: {0} > called", > > System.Reflection.MethodBase.GetCurrentMethod().Name); > > > > > > Let me know if this is the right sort of thing. Note that I cut a few > lines > > from the top that git output to the patchfile, that I cut out. They may > be > > necessary Idk, but if so let me know and I'll save them before I make a > > redux on the mantis site. > > > > Cheers Justin! > > James > > > > > > > > On Fri, May 27, 2011 at 7:08 PM, James Stallings II < > > [email protected]> wrote: > > > >> Thanks Justin, > >> > >> Will do just shortly. > >> > >> Cheers! > >> James > >> > >> > >> On Fri, May 27, 2011 at 7:08 PM, Justin Clark-Casey < > >> [email protected]> wrote: > >> > >>> 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 < > >>>> [email protected] <mailto:[email protected]>> 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 < > >>>> [email protected] <mailto:[email protected]>> > >>>> > >>>> 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 > >>>> [email protected] > >>>> https://lists.berlios.de/mailman/listinfo/opensim-dev > >>>> > >>> > >>> > >>> -- > >>> Justin Clark-Casey (justincc) > >>> http://justincc.org/blog > >>> http://twitter.com/justincc > >>> _______________________________________________ > >>> Opensim-dev mailing list > >>> [email protected] > >>> https://lists.berlios.de/mailman/listinfo/opensim-dev > >>> > >> > >> > >> > >> -- > >> =================================== > >> http://simhost.com http://osgrid.org > >> http://twitter.com/jstallings2 > >> http://www.linkedin.com/pub/5/770/a49 > >> > > > > > > > > > > > > _______________________________________________ > > Opensim-dev mailing list > > [email protected] > > https://lists.berlios.de/mailman/listinfo/opensim-dev > _______________________________________________ > Opensim-dev mailing list > [email protected] > https://lists.berlios.de/mailman/listinfo/opensim-dev > -- =================================== http://simhost.com http://osgrid.org http://twitter.com/jstallings2 http://www.linkedin.com/pub/5/770/a49
_______________________________________________ Opensim-dev mailing list [email protected] https://lists.berlios.de/mailman/listinfo/opensim-dev
