[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