You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
162 lines
4.3 KiB
162 lines
4.3 KiB
unit ufrmLiberaPermissao;
|
|
|
|
interface
|
|
|
|
uses
|
|
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
|
|
System.Classes, Vcl.Graphics,
|
|
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, umstMaster, Vcl.StdCtrls, Vcl.ComCtrls;
|
|
|
|
type
|
|
TfrmLiberaPermissao = class(TmstMaster)
|
|
cb_perm: TComboBox;
|
|
lbl_perm: TLabel;
|
|
lbl_user: TLabel;
|
|
edt_user: TEdit;
|
|
lbl_pass: TLabel;
|
|
edt_pass: TEdit;
|
|
btn_ok: TButton;
|
|
btn_cancel: TButton;
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormShow(Sender: TObject);
|
|
procedure btn_okClick(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
public
|
|
string_permissoes: TStringList;
|
|
level: integer;
|
|
{ Public declarations }
|
|
end;
|
|
|
|
var
|
|
frmLiberaPermissao: TfrmLiberaPermissao;
|
|
|
|
implementation
|
|
|
|
{$R *.dfm}
|
|
|
|
uses udtmSystem;
|
|
|
|
procedure TfrmLiberaPermissao.btn_okClick(Sender: TObject);
|
|
var
|
|
tava_aberto: boolean;
|
|
recno: integer;
|
|
begin
|
|
inherited;
|
|
if dtmSystem.tblGrupos.Active then
|
|
begin
|
|
recno := dtmSystem.tblGrupos.recno;
|
|
dtmSystem.tblGrupos.Close;
|
|
tava_aberto := true;
|
|
end;
|
|
if not dtmSystem.tblUsuariosConsulta.Active then
|
|
begin
|
|
dtmSystem.tblUsuariosConsulta.Open;
|
|
end;
|
|
if ((not dtmSystem.tblUsuariosConsulta.Locate('TX_USUARIO',
|
|
AnsiUpperCase(edt_user.Text), [])) and
|
|
(not dtmSystem.tblUsuariosConsulta.Locate('TX_USUARIO',
|
|
AnsiLowerCase(edt_user.Text), [])) and
|
|
(not dtmSystem.tblUsuariosConsulta.Locate('TX_USUARIO', edt_user.Text, []))) then
|
|
begin
|
|
MessageDlg('Usuário Inexistente/Incorreto.', mtWarning, [mbok], 0);
|
|
dtmSystem.tent_perm := dtmSystem.tent_perm + 1;
|
|
if (dtmSystem.tent_perm > 2) then
|
|
begin
|
|
MessageDlg
|
|
('Você excedeu o limite de tentativas de Entrada (3 tentativas). O programa irá terminar agora.',
|
|
mtWarning, [mbok], 0);
|
|
Application.Terminate;
|
|
end;
|
|
edt_user.SetFocus;
|
|
exit;
|
|
end
|
|
else if AnsiUpperCase(edt_pass.Text) <>
|
|
AnsiUpperCase(dtmSystem.tblUsuariosConsultaTX_SENHA.AsString) then
|
|
begin
|
|
MessageDlg('Senha Incorreta.', mtWarning, [mbok], 0);
|
|
dtmSystem.tent_perm := dtmSystem.tent_perm + 1;
|
|
if (dtmSystem.tent_perm > 2) then
|
|
begin
|
|
MessageDlg
|
|
('Você excedeu o limite de tentativas de Entrada (3 tentativas). O programa irá terminar agora.',
|
|
mtWarning, [mbok], 0);
|
|
Application.Terminate;
|
|
end;
|
|
edt_pass.SetFocus;
|
|
exit;
|
|
end
|
|
else if dtmSystem.tblUsuariosConsultaTP_ATIVO.Value = 'N' then
|
|
begin
|
|
MessageDlg('Conta de usuário bloqueada.', mtWarning, [mbok], 0);
|
|
exit;
|
|
end
|
|
else
|
|
begin
|
|
dtmSystem.tblGrupos.Locate('ID_GRUPO',
|
|
dtmSystem.tblUsuariosConsultaID_GRUPO.AsInteger, []);
|
|
if dtmSystem.tblGruposTP_SU.AsString = 'N' then
|
|
begin
|
|
MessageDlg('Conta de usuário não é um administrador.', mtWarning,
|
|
[mbok], 0);
|
|
exit;
|
|
end
|
|
else
|
|
begin
|
|
dtmSystem.tent_perm := 0;
|
|
dtmSystem.cod_liberapermissao := cb_perm.ItemIndex;
|
|
MessageDlg('Permissão concedida com sucesso!', mtWarning,
|
|
[mbok], 0);
|
|
end;
|
|
end;
|
|
if tava_aberto then
|
|
begin
|
|
dtmSystem.tblGrupos.Open;
|
|
dtmSystem.tblGrupos.recno := recno;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmLiberaPermissao.FormCreate(Sender: TObject);
|
|
begin
|
|
inherited;
|
|
string_permissoes := TStringList.Create;
|
|
end;
|
|
|
|
procedure TfrmLiberaPermissao.FormShow(Sender: TObject);
|
|
var
|
|
i, id_parent: integer;
|
|
cb_item: TStringList;
|
|
string_helper: string;
|
|
j: integer;
|
|
begin
|
|
inherited;
|
|
if not dtmSystem.tblPermissoes.Active then
|
|
begin
|
|
dtmSystem.tblPermissoes.Open;
|
|
end;
|
|
cb_item := TStringList.Create;
|
|
|
|
for i := 0 to string_permissoes.Count - 1 do
|
|
begin
|
|
cb_item.Clear;
|
|
dtmSystem.tblPermissoes.Locate('CD_PERMISSAO', string_permissoes[i], []);
|
|
cb_item.Add(dtmSystem.tblPermissoesTX_DESCRICAO.AsString);
|
|
id_parent := dtmSystem.tblPermissoesID_PARENT.AsInteger;
|
|
while id_parent <> level do
|
|
begin
|
|
dtmSystem.tblPermissoes.Locate('ID_PERMISSAO', id_parent, []);
|
|
cb_item.Add(dtmSystem.tblPermissoesTX_DESCRICAO.AsString);
|
|
id_parent := dtmSystem.tblPermissoesID_PARENT.AsInteger;
|
|
end;
|
|
for j := 0 to cb_item.Count - 1 do
|
|
begin
|
|
string_helper := string_helper + cb_item[cb_item.Count - 1 - j] + ' - ';
|
|
end;
|
|
setlength(string_helper, length(string_helper) - 3);
|
|
cb_perm.Items.Add(string_helper);
|
|
string_helper := '';
|
|
end;
|
|
cb_perm.ItemIndex := 0;
|
|
end;
|
|
|
|
end.
|