Eu gostaria de desabilitar/remover totalmente esse aviso, porque meu pacote é um módulo inteiro do RAD Server, então esses threadvars nunca terão a chance de serem usados fora do pacote.
Eu tentei {$WARNINGS OFF} na definição threadvar, mas isso não remove o aviso.
unit CustomSession;
interface
uses
System.Classes,
System.SysUtils,
EMS.ResourceAPI;
type
TKpSession = record
UserId: string;
UserName: string;
SessionToken: string;
class procedure ValidateRequest(const AContext: TEndpointContext); static;
end;
{$WARNINGS OFF}
threadvar
KpSession: TKpSession;
{$WARNINGS ON}
resourcestring
rsNotLoggedIn = 'You need to be logged in to access %s - %s';
implementation
uses
CustomLocalize;
class procedure TKpSession.ValidateRequest(const AContext: TEndpointContext);
var
UserId, Resource, Endpoint: string;
begin
Resource := AContext.Request.Resource;
Endpoint := AContext.EndpointName;
if Assigned(AContext.User) then
UserId := AContext.User.UserName;
if UserId.Trim <> '' then
begin
KpSession.UserId := UserId;
KpSession.UserName := UserId; // Retrieve username from the DDBB ?
KpSession.SessionToken := AContext.User.SessionToken;
// to-do: Check Permissions for the User on this Request/Endpoint.
end
else
begin
raise Exception.CreateFmt(_(rsNotLoggedIn), [Resource, Endpoint]);
end;
end;
end.
Você pode colocar esta linha em algum lugar no topo dessa unidade: