mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 04:19:07 +02:00
* Actually implemented Options (readonly, disable edit/delete/insert
git-svn-id: trunk@15568 -
This commit is contained in:
parent
2397fa8b40
commit
1b20fa6843
@ -468,6 +468,8 @@ type
|
|||||||
Property OnGetInputAdaptor;
|
Property OnGetInputAdaptor;
|
||||||
Property OnGetProvider;
|
Property OnGetProvider;
|
||||||
Property OnContent;
|
Property OnContent;
|
||||||
|
Property OnNewSession;
|
||||||
|
Property OnSessionExpired;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Var
|
Var
|
||||||
@ -477,7 +479,7 @@ Function WebDataProviderManager : TFPCustomWebDataProviderManager;
|
|||||||
|
|
||||||
implementation
|
implementation
|
||||||
|
|
||||||
{ $define wmdebug}
|
{$define wmdebug}
|
||||||
|
|
||||||
{$ifdef wmdebug}
|
{$ifdef wmdebug}
|
||||||
uses dbugintf;
|
uses dbugintf;
|
||||||
@ -499,6 +501,11 @@ Resourcestring
|
|||||||
SErrDuplicateHTTPDataProducer = 'Duplicate web data output content producer name: "%s"';
|
SErrDuplicateHTTPDataProducer = 'Duplicate web data output content producer name: "%s"';
|
||||||
SErrUnknownInputAdaptor = 'Unknown web data input adaptor name: "%s"';
|
SErrUnknownInputAdaptor = 'Unknown web data input adaptor name: "%s"';
|
||||||
SErrUnknownHTTPDataProducer = 'Unknown web data output content producer 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 }
|
{ TCustomWebdataInputAdaptor }
|
||||||
|
|
||||||
@ -736,6 +743,8 @@ end;
|
|||||||
procedure TFPCustomWebDataProvider.Update;
|
procedure TFPCustomWebDataProvider.Update;
|
||||||
begin
|
begin
|
||||||
{$ifdef wmdebug}SendDebug('TFPCustomWebDataProvider.Update enter');{$endif}
|
{$ifdef wmdebug}SendDebug('TFPCustomWebDataProvider.Update enter');{$endif}
|
||||||
|
If ((Options * [wdpReadOnly,wdpDisableEdit])<>[]) then
|
||||||
|
Raise EFPHTTPError.CreateFmt(SErrActionNotAllowed,[Name,SEditing]);
|
||||||
CheckAdaptor;
|
CheckAdaptor;
|
||||||
DoUpdate;
|
DoUpdate;
|
||||||
{$ifdef wmdebug}SendDebug('TFPCustomWebDataProvider.Update leave');{$endif}
|
{$ifdef wmdebug}SendDebug('TFPCustomWebDataProvider.Update leave');{$endif}
|
||||||
@ -743,14 +752,22 @@ end;
|
|||||||
|
|
||||||
procedure TFPCustomWebDataProvider.Delete;
|
procedure TFPCustomWebDataProvider.Delete;
|
||||||
begin
|
begin
|
||||||
|
{$ifdef wmdebug}SendDebug('TFPCustomWebDataProvider.Delete enter');{$endif}
|
||||||
|
If ((Options * [wdpReadOnly,wdpDisableDelete])<>[]) then
|
||||||
|
Raise EFPHTTPError.CreateFmt(SErrActionNotAllowed,[Name,SDeleting]);
|
||||||
CheckAdaptor;
|
CheckAdaptor;
|
||||||
DoDelete;
|
DoDelete;
|
||||||
|
{$ifdef wmdebug}SendDebug('TFPCustomWebDataProvider.Delete leave');{$endif}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFPCustomWebDataProvider.Insert;
|
procedure TFPCustomWebDataProvider.Insert;
|
||||||
begin
|
begin
|
||||||
|
{$ifdef wmdebug}SendDebug('TFPCustomWebDataProvider.Insert enter');{$endif}
|
||||||
|
If ((Options * [wdpReadOnly,wdpDisableInsert])<>[]) then
|
||||||
|
Raise EFPHTTPError.CreateFmt(SErrActionNotAllowed,[Name,SInserting]);
|
||||||
CheckAdaptor;
|
CheckAdaptor;
|
||||||
DoInsert;
|
DoInsert;
|
||||||
|
{$ifdef wmdebug}SendDebug('TFPCustomWebDataProvider.Insert leave');{$endif}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TFPCustomWebDataProvider.ApplyParams;
|
procedure TFPCustomWebDataProvider.ApplyParams;
|
||||||
@ -1635,6 +1652,11 @@ begin
|
|||||||
FRequest:=ARequest;
|
FRequest:=ARequest;
|
||||||
FResponse:=AResponse;
|
FResponse:=AResponse;
|
||||||
try
|
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;
|
ProviderName:=Request.GetNextPathInfo;
|
||||||
{$ifdef wmdebug}SendDebug('Handlerequest, providername : '+Providername);{$endif}
|
{$ifdef wmdebug}SendDebug('Handlerequest, providername : '+Providername);{$endif}
|
||||||
AProvider:=GetProvider(ProviderName,AContainer);
|
AProvider:=GetProvider(ProviderName,AContainer);
|
||||||
@ -1649,6 +1671,7 @@ begin
|
|||||||
wdaInsert : InsertWebdata(AProvider);
|
wdaInsert : InsertWebdata(AProvider);
|
||||||
wdaDelete : DeleteWebData(AProvider);
|
wdaDelete : DeleteWebData(AProvider);
|
||||||
end;
|
end;
|
||||||
|
UpdateSession(AResponse);
|
||||||
finally
|
finally
|
||||||
If (AContainer=Nil) then
|
If (AContainer=Nil) then
|
||||||
begin
|
begin
|
||||||
|
Loading…
Reference in New Issue
Block a user