safety4d/samples/Unit1.pas
Thulio Bittencourt 04d38189fd refactor
2021-04-07 22:03:05 -03:00

306 lines
6.0 KiB
ObjectPascal
Raw Permalink Blame History

unit Unit1;
interface
uses
Winapi.Windows,
Winapi.Messages,
System.SysUtils,
System.Variants,
System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs,
Vcl.StdCtrls, Vcl.ExtCtrls;
type
TForm1 = class(TForm)
GetResources: TButton;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
GroupBox1: TGroupBox;
edtUserKey: TLabeledEdit;
edtApplication: TLabeledEdit;
edtResource: TLabeledEdit;
edtAction: TLabeledEdit;
Button8: TButton;
Button9: TButton;
procedure GetResourcesClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
private
{ Private declarations }
procedure RegisterResources;
procedure _GetResources;
procedure _GetGroupsPermissions;
procedure _GetUserKeys;
procedure __ReloadConfig;
procedure __ReWriteMemoConfig;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses
Safety4D,
System.JSON,
Rest.Json,
System.IOUtils;
procedure TForm1._GetGroupsPermissions;
var
aJsonSafety4D : TJsonObject;
begin
aJsonSafety4D := TJSONObject.Create;
try
TSafety4D
.New
.groupPermission
.getGroups(aJsonSafety4D);
Memo1.Lines.Clear;
Memo1.Lines.Add(aJsonSafety4D.Format);
finally
aJsonSafety4D.Free;
end;
end;
procedure TForm1._GetResources;
var
aJsonSafety4D : TJsonObject;
begin
aJsonSafety4D := TJSONObject.Create;
try
TSafety4D
.New
.resources
.getResource(aJsonSafety4D);
Memo1.Lines.Clear;
Memo1.Lines.Add(aJsonSafety4D.Format);
finally
aJsonSafety4D.Free;
end;
end;
procedure TForm1._GetUserKeys;
var
aJsonSafety4D : TJsonObject;
begin
aJsonSafety4D := TJSONObject.Create;
try
TSafety4D
.New
.userKey
.getUserKey(aJsonSafety4D);
Memo1.Lines.Clear;
Memo1.Lines.Add(aJsonSafety4D.Format);
finally
aJsonSafety4D.Free;
end;
end;
procedure TForm1.__ReloadConfig;
var
aJson : TJsonObject;
begin
vSafety4D := nil;
aJson := TJSONObject.ParseJSONValue(Memo1.Lines.Text) as TJsonObject;
try
TSafety4D
.New
.LoadConfig(aJson);
finally
aJson.Free;
end;
end;
procedure TForm1.__ReWriteMemoConfig;
var
aJsonConfig : TJsonObject;
begin
Memo1.Lines.Clear;
aJsonConfig := TJsonObject.Create;
try
TSafety4D.New.getConfig(aJsonConfig);
Memo1.Lines.Add(aJsonConfig.Format);
finally
aJsonConfig.Free;
end;
end;
procedure TForm1.GetResourcesClick(Sender: TObject);
begin
_GetResources;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
TSafety4D
.New
.groupPermission
.groupRegister
.add('Gerente')
.description('Permiss<73>es completa de gest<73>o do Sistema')
.actions
.add('*')
.&end
.notActions
.add('users.delete')
.add('users.write')
.&end
.&end
.groupRegister
.add('Comercial')
.description('Permiss<73>es de Recursos Comerciais')
.actions
.add('*')
.&end
.notActions
.add('users.delete')
.add('users.write')
.&end
.&end
.&end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
TSafety4D
.New
.userKey
.registerUserKey
.Add('Fulano de Tal')
.addPermission('Gerente')
.&end
.Add('Beltrano')
.addPermission('Comercial')
.&end
.&end
.&end;
_GetUserKeys;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
aJsonSafety4D : TJsonObject;
begin
aJsonSafety4D := TJSONObject.Create;
try
TSafety4D.New.getConfig(aJsonSafety4D);
Memo1.Lines.Clear;
Memo1.Lines.Add(aJsonSafety4D.Format);
finally
aJsonSafety4D.Free;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
TSafety4D
.New
.resources
.registerResources
.resourcesGroupName
.add('newapplication')
.providerName
.add('users')
.actions
.add('read')
.description('read-only')
.errormsg('not permit')
.&end
.add('write')
.description('read-write')
.errormsg('not write data')
.&end
.add('delete')
.description('delete-data')
.errormsg('not delete data')
.&end
.add('view')
.description('view data')
.errormsg('not view data')
.&end
.&end
.&end;
__ReWriteMemoConfig;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
TSafety4D.New.SaveToStorage();
end;
procedure TForm1.Button6Click(Sender: TObject);
var
JSONValue : TJsonValue;
LFileName: string;
begin
LFileName := ChangeFileExt(ParamStr(0), '.s4d');
JSONValue := TJSONObject.ParseJSONValue(TFile.ReadAllText(LFileName));
try
TSafety4D.New.LoadConfig(JSONValue as TJSONObject);
finally
JSONValue.Free;
end;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
_GetGroupsPermissions;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
__ReloadConfig;
try
TSafety4D.New
.configurations
.exceptions(True)
.&end
.Validation
.userKey(edtUserKey.Text)
.application(edtApplication.Text)
.resource(edtResource.Text)
.action(edtAction.Text)
.validate;
ShowMessage('Usuario Autorizado');
except on e : Exception do
raise Exception.Create(e.Message);
end;
end;
procedure TForm1.RegisterResources;
begin
end;
end.