New mantis on the site with a unified diff, my apologies do not have the url on hand atm; comments are not only welcome but solicited XD
Thanks! James On Mon, May 30, 2011 at 5:20 PM, Justin Clark-Casey < [email protected]> wrote: > Please could you put this patch into a mantis now. There are some comments > that I need to make on it. Thanks. > > > On 28/05/11 02:37, James Stallings II wrote: > >> 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]<mailto: >> [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] <mailto: >> [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] <mailto:[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] <mailto:[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]> >> <mailto:[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]> >> <mailto:[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> >> >>>> <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] <mailto: >> [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] <mailto:[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] <mailto:[email protected]> >> >> > https://lists.berlios.de/mailman/listinfo/opensim-dev >> _______________________________________________ >> Opensim-dev mailing list >> [email protected] <mailto:[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 >> > > > -- > 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
