Commit 59c3c0cc by Cam Hayes

QB is now disabled from the ini

parent 962f9e80
...@@ -181,7 +181,10 @@ end; ...@@ -181,7 +181,10 @@ end;
procedure TFViewCustomers.btnAddCustomerClick(Sender: TObject); procedure TFViewCustomers.btnAddCustomerClick(Sender: TObject);
begin begin
ShowSelectCustomerForm(); if AuthService.TokenPayload.Properties['qb_enabled'] then
ShowSelectCustomerForm()
else
ShowToast('QB interface not currently active', 'info');
end; end;
procedure TFViewCustomers.edtFilterChange(Sender: TObject); procedure TFViewCustomers.edtFilterChange(Sender: TObject);
......
...@@ -444,6 +444,9 @@ var ...@@ -444,6 +444,9 @@ var
itemOptions: string; itemOptions: string;
newform: TFViewAddItem; newform: TFViewAddItem;
begin begin
console.log(AuthService.TokenPayload.Properties['qb_enabled']);
if AuthService.TokenPayload.Properties['qb_enabled'] then
begin
newform := TFViewAddItem.CreateNew; newform := TFViewAddItem.CreateNew;
newform.Caption := 'Select Item to Add'; newform.Caption := 'Select Item to Add';
...@@ -472,6 +475,9 @@ begin ...@@ -472,6 +475,9 @@ begin
end; end;
end end
); );
end
else
ShowToast('QB interface not currently active', 'info');
end; end;
procedure TFViewItems.btnCancelClick(Sender: TObject); procedure TFViewItems.btnCancelClick(Sender: TObject);
......
...@@ -389,6 +389,9 @@ procedure TFOrderEntryCorrugated.btnQBClick(Sender: TObject); ...@@ -389,6 +389,9 @@ procedure TFOrderEntryCorrugated.btnQBClick(Sender: TObject);
var var
orderJSON: TJSONObject; orderJSON: TJSONObject;
begin begin
if AuthService.TokenPayload.Properties['qb_enabled'] then
begin
begin
if JS.toString(AuthService.TokenPayload.Properties['user_qb_id']) <> '' then if JS.toString(AuthService.TokenPayload.Properties['user_qb_id']) <> '' then
begin begin
if ( VerifyQBOrder() )then if ( VerifyQBOrder() )then
...@@ -407,6 +410,10 @@ begin ...@@ -407,6 +410,10 @@ begin
end end
else else
ShowToast('Failure:User not authorized to add to QuickBooks', 'failure'); ShowToast('Failure:User not authorized to add to QuickBooks', 'failure');
end
end
else
ShowToast('QB interface not currently active', 'info');
end; end;
[async] procedure TFOrderEntryCorrugated.GenerateReportPDF; [async] procedure TFOrderEntryCorrugated.GenerateReportPDF;
......
...@@ -193,6 +193,8 @@ procedure TFOrderEntryCuttingDie.btnQBClick(Sender: TObject); ...@@ -193,6 +193,8 @@ procedure TFOrderEntryCuttingDie.btnQBClick(Sender: TObject);
var var
orderJSON: TJSONObject; orderJSON: TJSONObject;
begin begin
if AuthService.TokenPayload.Properties['qb_enabled'] then
begin
if JS.toString(AuthService.TokenPayload.Properties['user_qb_id']) <> '' then if JS.toString(AuthService.TokenPayload.Properties['user_qb_id']) <> '' then
begin begin
if ( VerifyQBOrder() )then if ( VerifyQBOrder() )then
...@@ -211,6 +213,9 @@ begin ...@@ -211,6 +213,9 @@ begin
end end
else else
ShowToast('Failure:User not authorized to add to QuickBooks', 'failure'); ShowToast('Failure:User not authorized to add to QuickBooks', 'failure');
end
else
ShowToast('QB interface not currently active', 'info');
end; end;
procedure TFOrderEntryCuttingDie.WebButton2Click(Sender: TObject); procedure TFOrderEntryCuttingDie.WebButton2Click(Sender: TObject);
......
...@@ -454,6 +454,8 @@ procedure TFOrderEntryWeb.btnQBClick(Sender: TObject); ...@@ -454,6 +454,8 @@ procedure TFOrderEntryWeb.btnQBClick(Sender: TObject);
var var
orderJSON: TJSONObject; orderJSON: TJSONObject;
begin begin
if AuthService.TokenPayload.Properties['qb_enabled'] then
begin
if JS.toString(AuthService.TokenPayload.Properties['user_qb_id']) <> '' then if JS.toString(AuthService.TokenPayload.Properties['user_qb_id']) <> '' then
begin begin
if ( VerifyQBOrder() )then if ( VerifyQBOrder() )then
...@@ -472,6 +474,9 @@ begin ...@@ -472,6 +474,9 @@ begin
end end
else else
ShowToast('Failure:User not authorized to add to QuickBooks', 'failure'); ShowToast('Failure:User not authorized to add to QuickBooks', 'failure');
end
else
ShowToast('QB interface not currently active', 'info');
end; end;
procedure TFOrderEntryWeb.AddEstimate(orderID: string); procedure TFOrderEntryWeb.AddEstimate(orderID: string);
......
...@@ -27,9 +27,9 @@ type ...@@ -27,9 +27,9 @@ type
userAccessType: string; userAccessType: string;
userEmail: string; userEmail: string;
userStatus: string; userStatus: string;
qbEnabled: boolean;
procedure AfterConstruction; override; procedure AfterConstruction; override;
procedure BeforeDestruction; override; procedure BeforeDestruction; override;
property Query: TUniQuery read GetQuery;
function CheckUser(const user, password: string): Integer; function CheckUser(const user, password: string): Integer;
public public
function Login(const user, password: string): string; function Login(const user, password: string): string;
...@@ -81,6 +81,7 @@ begin ...@@ -81,6 +81,7 @@ begin
try try
webClientVersion := iniFile.ReadString('Settings', 'webClientVersion', ''); webClientVersion := iniFile.ReadString('Settings', 'webClientVersion', '');
Result.AddPair('webClientVersion', webClientVersion); Result.AddPair('webClientVersion', webClientVersion);
qbEnabled := iniFile.ReadBool('Quickbooks', 'Enabled', false);
if webClientVersion = '' then if webClientVersion = '' then
begin begin
...@@ -102,6 +103,7 @@ end; ...@@ -102,6 +103,7 @@ end;
function TAuthService.Login(const user, password: string): string; function TAuthService.Login(const user, password: string): string;
var var
userState: Integer; userState: Integer;
iniFile: TIniFile;
JWT: TJWT; JWT: TJWT;
begin begin
Logger.Log(3, Format( 'AuthService.Login - User: "%s"', [User])); Logger.Log(3, Format( 'AuthService.Login - User: "%s"', [User]));
...@@ -131,6 +133,14 @@ begin ...@@ -131,6 +133,14 @@ begin
raise EXDataHttpUnauthorized.Create('User not active!'); raise EXDataHttpUnauthorized.Create('User not active!');
logger.Log(2, 'Login Error: User not active!'); logger.Log(2, 'Login Error: User not active!');
iniFile := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
try
qbEnabled := iniFile.ReadBool('Quickbooks', 'Enabled', false);
finally
iniFile.Free;
end;
JWT := TJWT.Create; JWT := TJWT.Create;
try try
JWT.Claims.JWTId := LowerCase(Copy(TUtils.GuidToVariant(TUtils.NewGuid), 2, 36)); JWT.Claims.JWTId := LowerCase(Copy(TUtils.GuidToVariant(TUtils.NewGuid), 2, 36));
...@@ -144,6 +154,7 @@ begin ...@@ -144,6 +154,7 @@ begin
JWT.Claims.SetClaimOfType<string>('user_email', userEmail); JWT.Claims.SetClaimOfType<string>('user_email', userEmail);
JWT.Claims.SetClaimOfType<string>('user_qb_id', userQBID); JWT.Claims.SetClaimOfType<string>('user_qb_id', userQBID);
JWT.Claims.SetClaimOfType<string>('user_access_type', userAccessType); JWT.Claims.SetClaimOfType<string>('user_access_type', userAccessType);
JWT.Claims.SetClaimOfType<boolean>('qb_enabled', qbEnabled);
Result := TJOSE.SHA256CompactToken(serverConfig.jwtTokenSecret, JWT); Result := TJOSE.SHA256CompactToken(serverConfig.jwtTokenSecret, JWT);
finally finally
......
...@@ -98,7 +98,6 @@ var ...@@ -98,7 +98,6 @@ var
f: TStringList; f: TStringList;
fi: string; fi: string;
JSObj: TJSONObject; JSObj: TJSONObject;
iniFile: TIniFile;
Encoder: TBase64Encoding; Encoder: TBase64Encoding;
begin begin
// 1. Encode credentials (same as working Postman request) // 1. Encode credentials (same as working Postman request)
...@@ -129,7 +128,7 @@ begin ...@@ -129,7 +128,7 @@ begin
SSLIO.SSLOptions.SSLVersions := [sslvTLSv1_2]; SSLIO.SSLOptions.SSLVersions := [sslvTLSv1_2];
IdHTTP.IOHandler := SSLIO; IdHTTP.IOHandler := SSLIO;
// Set headers (EXACT match with Postman) // Set headers
IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded'; IdHTTP.Request.ContentType := 'application/x-www-form-urlencoded';
IdHTTP.Request.Accept := 'application/json'; IdHTTP.Request.Accept := 'application/json';
IdHTTP.Request.CustomHeaders.AddValue('Authorization', 'Basic ' + EncodedAuth); IdHTTP.Request.CustomHeaders.AddValue('Authorization', 'Basic ' + EncodedAuth);
...@@ -162,7 +161,6 @@ end; ...@@ -162,7 +161,6 @@ end;
procedure TQBService.SaveTokens(AccessToken, RefreshToken: string); procedure TQBService.SaveTokens(AccessToken, RefreshToken: string);
var var
f: TStringList; f: TStringList;
iniStr, line: string;
iniFile: TIniFile; iniFile: TIniFile;
begin begin
iniFile := TIniFile.Create( ExtractFilePath(Application.ExeName) + 'kgOrdersServer.ini' ); iniFile := TIniFile.Create( ExtractFilePath(Application.ExeName) + 'kgOrdersServer.ini' );
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
MemoLogLevel=4 MemoLogLevel=4
FileLogLevel=4 FileLogLevel=4
webClientVersion=1.0.0 webClientVersion=1.0.0
LogFileNum=137 LogFileNum=141
[Database] [Database]
--Server=192.168.116.138 --Server=192.168.116.138
...@@ -15,6 +15,7 @@ Password=emsys01 ...@@ -15,6 +15,7 @@ Password=emsys01
--Password=emsys!012 --Password=emsys!012
[Quickbooks] [Quickbooks]
Enabled=0
CompanyID=9341454336461805 CompanyID=9341454336461805
ClientID=ABYqlDx1EsacZYXvHIJ7RDB7zmnQdwABU3fwQLIZPmBgU0VW1P ClientID=ABYqlDx1EsacZYXvHIJ7RDB7zmnQdwABU3fwQLIZPmBgU0VW1P
ClientSecret=PM7OnvQWsgOqjWfDpZAnyRttDN9446Am6d85pDxr ClientSecret=PM7OnvQWsgOqjWfDpZAnyRttDN9446Am6d85pDxr
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment