* Actually implemented Options (readonly, disable edit/delete/insert

git-svn-id: trunk@15568 -
This commit is contained in:
michael 2010-07-14 14:33:41 +00:00
parent 2397fa8b40
commit 1b20fa6843

View File

@ -468,6 +468,8 @@ type
Property OnGetInputAdaptor;
Property OnGetProvider;
Property OnContent;
Property OnNewSession;
Property OnSessionExpired;
end;
Var
@ -477,7 +479,7 @@ Function WebDataProviderManager : TFPCustomWebDataProviderManager;
implementation
{ $define wmdebug}
{$define wmdebug}
{$ifdef wmdebug}
uses dbugintf;
@ -499,6 +501,11 @@ Resourcestring
SErrDuplicateHTTPDataProducer = 'Duplicate web data output content producer name: "%s"';
SErrUnknownInputAdaptor = 'Unknown web data input adaptor name: "%s"';
SErrUnknownHTTPDataProducer = 'Unknown web data output content producer name: "%s"';
SErrActionNotAllowed = 'Options of provider %s do not allow %s.';
SEditing = 'editing';
SDeleting = 'deleting';
SInserting = 'inserting';
{ TCustomWebdataInputAdaptor }
@ -736,6 +743,8 @@ end;
procedure TFPCustomWebDataProvider.Update;
begin
{$ifdef wmdebug}SendDebug('TFPCustomWebDataProvider.Update enter');{$endif}
If ((Options * [wdpReadOnly,wdpDisableEdit])<>[]) then
Raise EFPHTTPError.CreateFmt(SErrActionNotAllowed,[Name,SEditing]);
CheckAdaptor;
DoUpdate;
{$ifdef wmdebug}SendDebug('TFPCustomWebDataProvider.Update leave');{$endif}
@ -743,14 +752,22 @@ end;
procedure TFPCustomWebDataProvider.Delete;
begin
{$ifdef wmdebug}SendDebug('TFPCustomWebDataProvider.Delete enter');{$endif}
If ((Options * [wdpReadOnly,wdpDisableDelete])<>[]) then
Raise EFPHTTPError.CreateFmt(SErrActionNotAllowed,[Name,SDeleting]);
CheckAdaptor;
DoDelete;
{$ifdef wmdebug}SendDebug('TFPCustomWebDataProvider.Delete leave');{$endif}
end;
procedure TFPCustomWebDataProvider.Insert;
begin
{$ifdef wmdebug}SendDebug('TFPCustomWebDataProvider.Insert enter');{$endif}
If ((Options * [wdpReadOnly,wdpDisableInsert])<>[]) then
Raise EFPHTTPError.CreateFmt(SErrActionNotAllowed,[Name,SInserting]);
CheckAdaptor;
DoInsert;
{$ifdef wmdebug}SendDebug('TFPCustomWebDataProvider.Insert leave');{$endif}
end;
procedure TFPCustomWebDataProvider.ApplyParams;
@ -1635,6 +1652,11 @@ begin
FRequest:=ARequest;
FResponse:=AResponse;
try
{$ifdef wmdebug}SendDebug('Checking session');{$endif}
CheckSession(ARequest);
{$ifdef wmdebug}SendDebug('Init session');{$endif}
InitSession(AResponse);
{$ifdef wmdebug}SendDebug('Getting providername');{$endif}
ProviderName:=Request.GetNextPathInfo;
{$ifdef wmdebug}SendDebug('Handlerequest, providername : '+Providername);{$endif}
AProvider:=GetProvider(ProviderName,AContainer);
@ -1649,6 +1671,7 @@ begin
wdaInsert : InsertWebdata(AProvider);
wdaDelete : DeleteWebData(AProvider);
end;
UpdateSession(AResponse);
finally
If (AContainer=Nil) then
begin