[mapguide-users] Modify layout with anonymous user
euskalmap
ziburudebian at free.fr
Tue Jul 7 04:28:20 EDT 2009
Hi kenneth,
Thanks a lot for you code; i try it but it do not run (
http://patxi.mayol.free.fr/public/ag_default_maestro.aspx here is my code )
: the mapdefinition of layout is not change !
have you an idea ?
Kenneth Skovhede, GEOGRAF A/S wrote:
>
> Something like this would do it with MaestroAPI (untested):
>
> MaestroAPI.ServerConnectionI con; //Needs initialization
>
> //Read the current resources
> MaestroAPI.WebLayout layout =
> con.GetWebLayout("???.WebLayout");
> MaestroAPI.MapDefinition map =
> con.GetMapDefinition(layout.Map.ResourceId);
>
> //Create the temp layer
> MaestroAPI.MapLayerType layer = new
> OSGeo.MapGuide.MaestroAPI.MapLayerType();
> layer.ResourceId = "???.LayerDefinition";
> layer.Name = "Temporary layer";
>
> //Add it to the map
> map.Layers.Add(layer);
>
> //Generate a session based temporary id (will become
> Session:<sessionid>//Random Map Identifier.MapDefinition)
> string tempMapId = new MaestroAPI.ResourceIdentifier("Random
> Map Identifier", MaestroAPI.ResourceTypes.MapDefinition, con.SessionID);
>
> //Save the modified map in the session repo
> con.SaveResourceAs(map, tempMapId);
>
> //Modify the layout to point at the temp map
> layout.Map.ResourceId = tempMapId;
>
> //Generate a session based temporary id, and save the
> modified layout (will become Session:<sessionid>//Random WebLayot
> Identifier.WebLayout)
> string tempLayoutId = new
> MaestroAPI.ResourceIdentifier("Random WebLayout Identifier",
> MaestroAPI.ResourceTypes.WebLayout, con.SessionID);
> con.SaveResourceAs(layout, tempLayoutId);
>
> //Open the viewer with the modified weblayout, that uses the
> modified map
> Response.Redirect("/mapguide/mapviewerajax/?session=" +
> Server.UrlEncode(con.SessionID) + "&layout=" +
> Server.UrlEncode(tempLayoutId));
>
> You can rewrite the property access with the corresponding xml changes,
> and the GetResource/SaveResource with the corresponding function calls
> to the
> MapGuide API, if you don't want to use Maestro.
>
> Instead of the "Random ... Identifier" strings, you should use
> Guid.NewGuid().ToString().
>
> Regards, Kenneth Skovhede, GEOGRAF A/S
>
>
>
> euskalmap skrev:
>> Hi,
>> thanks for your information but how do you make toYou have to create a
>> temporary WebLayout AND a temporary MapDefinition and then make the
>> temporary WebLayout point to the temporary MapDefinition.
>> Have you an example of code?
>> Thnaks
>>
>> Kenneth Skovhede, GEOGRAF A/S wrote:
>>
>>> If you save to "Library://" the data will be modified permanently.
>>> Normally the "Anonymous" user is not allowed to save to "Library://".
>>>
>>> If you save to "Session:<sessionid>//" the changes will only be visible
>>> to
>>> the current user. You must take care not to mix sessionid's.
>>>
>>> I think you are trying to use the WebLayout from Library, that will not
>>> work.
>>> You have to create a temporary WebLayout AND a temporary MapDefinition.
>>>
>>> Then make the temporary WebLayout point to the temporary MapDefinition.
>>> (I think your code does this)
>>> Then save both WebLayout and MapDefinition in "Session:<sessionid>//".
>>> When you redirect, you should point to the temporary WebLayout.
>>> As you pass in the sessionId, the viewer should be able to read it
>>> correctly.
>>>
>>> Regards, Kenneth Skovhede, GEOGRAF A/S
>>>
>>>
>>>
>>>
>>> euskalmap skrev:
>>>
>>>> Hi,
>>>> I refresh my post! If you have an idea !!!
>>>>
>>>> Sorry, I wanted to say that my c# code change the mapdefinitin in the
>>>> layout
>>>> for the current session;
>>>> if i use administrator user, it seems to me that my repositories is
>>>> modified
>>>> in maestro, no and i will not ?
>>>> For (Sample 1) my code is http://patxi.mayol.free.fr/ag_default3.aspx
>>>> here
>>>> For (Sample 2) my xml file is
>>>> http://patxi.mayol.free.fr/test_after.xml
>>>> here
>>>> Thanks
>>>>
>>>> Kenneth Skovhede, GEOGRAF A/S wrote:
>>>>
>>>>
>>>>> You mention "layout resource", but the message states a MapDefinition
>>>>> is
>>>>> saved?
>>>>> Anonymous can only save to the same session, only Administrator can
>>>>> save
>>>>> across
>>>>> sessions.
>>>>>
>>>>> As for the parse error, your document is likely invalid.
>>>>>
>>>>> For (Sample 1), can you post the related code?
>>>>> For (Sample 2), can you post a binary copy of the document you are
>>>>> trying to save?
>>>>>
>>>>> Regards, Kenneth Skovhede, GEOGRAF A/S
>>>>>
>>>>>
>>>>>
>>>>> euskalmap skrev:
>>>>>
>>>>>
>>>>>> Hi,
>>>>>> I modify, by c# script, the name of the layout resource; i use the
>>>>>> MgUserInformation function with Anonymous user without password.
>>>>>> sample1 : In mapguide administrator this user have no role => so when
>>>>>> i
>>>>>> load
>>>>>> the page i have this message :
>>>>>> Permission denied to resource:
>>>>>> Session:98d50e40-ffff-ffff-8000-0016d44491c1_en_7F0000010AFC0AFB0AFA//Map_40312.MapDefinition
>>>>>> sample 2 : if i add the role Adminstrator and Map Author of the
>>>>>> Anonymous
>>>>>> user, i have this message :
>>>>>> An exception occurred in DB XML component. Error: XML Indexer: Fatal
>>>>>> Parse
>>>>>> error in document at line, 1, char 1. Parser message: Invalid
>>>>>> document
>>>>>> structure
>>>>>>
>>>>>> I understand anything ! Have you an idea ?
>>>>>>
>>>>>> Thanks
>>>>>>
>>>>>>
>>>>>>
>>>>> _______________________________________________
>>>>> mapguide-users mailing list
>>>>> mapguide-users at lists.osgeo.org
>>>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>> _______________________________________________
>>> mapguide-users mailing list
>>> mapguide-users at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>>>
>>>
>>>
>>
>>
>
> _______________________________________________
> mapguide-users mailing list
> mapguide-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapguide-users
>
>
--
View this message in context: http://n2.nabble.com/Modify-layout-with-anonymous-user-tp3092823p3218020.html
Sent from the MapGuide Users mailing list archive at Nabble.com.
More information about the mapguide-users
mailing list