248 lines
7.1 KiB
ObjectPascal
248 lines
7.1 KiB
ObjectPascal
|
|
unit IncUser_U;
|
|||
|
|
|
|||
|
|
interface
|
|||
|
|
|
|||
|
|
{$I 'UserControl.inc'}
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
{$IFDEF DELPHI5_UP}
|
|||
|
|
Variants,
|
|||
|
|
{$ENDIF}
|
|||
|
|
Buttons,
|
|||
|
|
Classes,
|
|||
|
|
Controls,
|
|||
|
|
DB,
|
|||
|
|
DBCtrls,
|
|||
|
|
Dialogs,
|
|||
|
|
ExtCtrls,
|
|||
|
|
Forms,
|
|||
|
|
Graphics,
|
|||
|
|
Messages,
|
|||
|
|
StdCtrls,
|
|||
|
|
SysUtils,
|
|||
|
|
UCBase,
|
|||
|
|
Windows,
|
|||
|
|
Spin;
|
|||
|
|
|
|||
|
|
type
|
|||
|
|
TfrmIncluirUsuario = class(TForm)
|
|||
|
|
Panel1: TPanel;
|
|||
|
|
LbDescricao: TLabel;
|
|||
|
|
Image1: TImage;
|
|||
|
|
Panel3: TPanel;
|
|||
|
|
btGravar: TBitBtn;
|
|||
|
|
btCancela: TBitBtn;
|
|||
|
|
Panel2: TPanel;
|
|||
|
|
lbNome: TLabel;
|
|||
|
|
EditNome: TEdit;
|
|||
|
|
lbLogin: TLabel;
|
|||
|
|
EditLogin: TEdit;
|
|||
|
|
lbEmail: TLabel;
|
|||
|
|
EditEmail: TEdit;
|
|||
|
|
ckPrivilegiado: TCheckBox;
|
|||
|
|
lbPerfil: TLabel;
|
|||
|
|
ComboPerfil: TDBLookupComboBox;
|
|||
|
|
btlimpa: TSpeedButton;
|
|||
|
|
ckUserExpired: TCheckBox;
|
|||
|
|
LabelExpira: TLabel;
|
|||
|
|
SpinExpira: TSpinEdit;
|
|||
|
|
LabelDias: TLabel;
|
|||
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|||
|
|
procedure btCancelaClick(Sender: TObject);
|
|||
|
|
procedure btGravarClick(Sender: TObject);
|
|||
|
|
function GetNewIdUser: Integer;
|
|||
|
|
procedure btlimpaClick(Sender: TObject);
|
|||
|
|
procedure FormShow(Sender: TObject);
|
|||
|
|
procedure FormCreate(Sender: TObject);
|
|||
|
|
procedure ckUserExpiredClick(Sender: TObject);
|
|||
|
|
private
|
|||
|
|
FormSenha : TCustomForm;
|
|||
|
|
{ Private declarations }
|
|||
|
|
public
|
|||
|
|
{ Public declarations }
|
|||
|
|
FAltera: Boolean;
|
|||
|
|
FUserControl: TUserControl;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
implementation
|
|||
|
|
|
|||
|
|
uses
|
|||
|
|
CadUser_U,
|
|||
|
|
SenhaForm_U;
|
|||
|
|
|
|||
|
|
{$R *.dfm}
|
|||
|
|
|
|||
|
|
procedure TfrmIncluirUsuario.FormClose(Sender: TObject; var Action: TCloseAction);
|
|||
|
|
begin
|
|||
|
|
Action := caFree;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrmIncluirUsuario.FormCreate(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
Self.BorderIcons := [];
|
|||
|
|
Self.BorderStyle := bsDialog;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrmIncluirUsuario.btCancelaClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
Close;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrmIncluirUsuario.btGravarClick(Sender: TObject);
|
|||
|
|
var
|
|||
|
|
vNovaSenha: String;
|
|||
|
|
vNome: String;
|
|||
|
|
vLogin: String;
|
|||
|
|
vEmail: String;
|
|||
|
|
vUserExpired : Integer;
|
|||
|
|
vNovoIDUsuario: Integer;
|
|||
|
|
vPerfil: Integer;
|
|||
|
|
vPrivilegiado: Boolean;
|
|||
|
|
begin
|
|||
|
|
btGravar.Enabled := False;
|
|||
|
|
|
|||
|
|
with FUserControl do
|
|||
|
|
if not FAltera then
|
|||
|
|
begin // inclui user
|
|||
|
|
if Self.FUserControl.ExisteUsuario(EditLogin.Text) then
|
|||
|
|
begin
|
|||
|
|
MessageDlg(Format(FUserControl.UserSettings.CommonMessages.UsuarioExiste, [EditLogin.Text]), mtWarning, [mbOK], 0);
|
|||
|
|
Exit;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
FormSenha := TSenhaForm.Create( Self );
|
|||
|
|
TSenhaForm(FormSenha).Position := UserSettings.WindowsPosition;
|
|||
|
|
TSenhaForm(FormSenha).fUserControl := fUserControl;
|
|||
|
|
TSenhaForm(FormSenha).Caption := Format(FUserControl.UserSettings.ResetPassword.WindowCaption, [ EditLogin.Text ]);
|
|||
|
|
If TSenhaForm(FormSenha).ShowModal <> mrok then
|
|||
|
|
Begin
|
|||
|
|
btGravar.Enabled := True;
|
|||
|
|
Exit;
|
|||
|
|
End;
|
|||
|
|
vNovaSenha := TSenhaForm(FormSenha).edtSenha.Text;
|
|||
|
|
vNovoIDUsuario := GetNewIdUser;
|
|||
|
|
vNome := EditNome.Text;
|
|||
|
|
vLogin := EditLogin.Text;
|
|||
|
|
vEmail := EditEmail.Text;
|
|||
|
|
FreeAndNil( FormSenha );
|
|||
|
|
|
|||
|
|
if ComboPerfil.KeyValue = null then
|
|||
|
|
vPerfil := 0
|
|||
|
|
else
|
|||
|
|
vPerfil := ComboPerfil.KeyValue;
|
|||
|
|
|
|||
|
|
vPrivilegiado := ckPrivilegiado.Checked;
|
|||
|
|
vUserExpired := StrToInt(BoolToStr(ckUserExpired.Checked));
|
|||
|
|
|
|||
|
|
AddUser(vLogin, vNovaSenha, vNome, vEmail, vPerfil, vUserExpired, SpinExpira.Value, vPrivilegiado);
|
|||
|
|
|
|||
|
|
{ TODO -oLuiz -cUpgrade : Consertar a Senha para poder avisar MD5 }
|
|||
|
|
if (Assigned(MailUserControl)) and (MailUserControl.AdicionaUsuario.Ativo) then
|
|||
|
|
try
|
|||
|
|
MailUserControl.EnviaEmailAdicionaUsuario(vNome, vLogin, Encrypt(vNovaSenha, EncryptKey), vEmail, IntToStr(vPerfil), EncryptKey);
|
|||
|
|
except
|
|||
|
|
on E: Exception do
|
|||
|
|
Log(E.Message, llMedio);
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end
|
|||
|
|
else
|
|||
|
|
begin // alterar user
|
|||
|
|
vNovoIDUsuario := TfrmCadastrarUsuario(Self.Owner).FDataSetCadastroUsuario.FieldByName('IdUser').AsInteger;
|
|||
|
|
vNome := EditNome.Text;
|
|||
|
|
vLogin := EditLogin.Text;
|
|||
|
|
vEmail := EditEmail.Text;
|
|||
|
|
if ComboPerfil.KeyValue = null then
|
|||
|
|
vPerfil := 0
|
|||
|
|
else
|
|||
|
|
vPerfil := ComboPerfil.KeyValue;
|
|||
|
|
|
|||
|
|
vUserExpired := StrToInt(BoolToStr(ckUserExpired.Checked)); //Added by Petrus van Breda 28/04/2007
|
|||
|
|
vPrivilegiado := ckPrivilegiado.Checked;
|
|||
|
|
ChangeUser(vNovoIDUsuario, vLogin, vNome, vEmail, vPerfil,vUserExpired , SpinExpira.Value, vPrivilegiado);
|
|||
|
|
|
|||
|
|
{ TODO -oLuiz -cUpgrade : Consertar a Senha para poder avisar MD5 }
|
|||
|
|
if (Assigned(MailUserControl)) and (MailUserControl.AlteraUsuario.Ativo) then
|
|||
|
|
try
|
|||
|
|
MailUserControl.EnviaEmailAlteraUsuario(vNome,
|
|||
|
|
vLogin,
|
|||
|
|
TfrmCadastrarUsuario(Self.Owner).FDataSetCadastroUsuario.FieldByName('SENHA').AsString,
|
|||
|
|
vEmail,
|
|||
|
|
IntToStr(vPerfil),
|
|||
|
|
EncryptKey);
|
|||
|
|
except
|
|||
|
|
on E: Exception do
|
|||
|
|
Log(E.Message, 2);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
TfrmCadastrarUsuario(Owner).FDataSetCadastroUsuario.Close;
|
|||
|
|
TfrmCadastrarUsuario(Owner).FDataSetCadastroUsuario.Open;
|
|||
|
|
|
|||
|
|
TfrmCadastrarUsuario(Owner).FDataSetCadastroUsuario.Locate('idUser', vNovoIDUsuario, []);
|
|||
|
|
Close;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
function TfrmIncluirUsuario.GetNewIdUser: Integer;
|
|||
|
|
var
|
|||
|
|
DataSet: TDataset;
|
|||
|
|
SQLStmt: String;
|
|||
|
|
begin
|
|||
|
|
with FUserControl do
|
|||
|
|
begin
|
|||
|
|
SQLStmt := Format('SELECT %s.%s FROM %s ORDER BY %s DESC',
|
|||
|
|
[TableUsers.TableName,
|
|||
|
|
TableUsers.FieldUserID,
|
|||
|
|
TableUsers.TableName,
|
|||
|
|
TableUsers.FieldUserID]);
|
|||
|
|
try
|
|||
|
|
DataSet := DataConnector.UCGetSQLDataSet(SQLStmt);
|
|||
|
|
Result := DataSet.Fields[0].AsInteger + 1;
|
|||
|
|
DataSet.Close;
|
|||
|
|
finally
|
|||
|
|
SysUtils.FreeAndNil(DataSet);
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrmIncluirUsuario.btLimpaClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
ComboPerfil.KeyValue := NULL;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrmIncluirUsuario.FormShow(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
if not FUserControl.UserProfile.Active then
|
|||
|
|
begin
|
|||
|
|
lbPerfil.Visible := False;
|
|||
|
|
ComboPerfil.Visible := False;
|
|||
|
|
btLimpa.Visible := False;
|
|||
|
|
end
|
|||
|
|
else
|
|||
|
|
begin
|
|||
|
|
ComboPerfil.ListSource.DataSet.Close;
|
|||
|
|
ComboPerfil.ListSource.DataSet.Open;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
If FUserControl.Login.ActiveDateExpired = true then //Op<4F><70>o de senha so deve aparecer qdo setada como true no componente By Vicente Barros Leonel
|
|||
|
|
ckPrivilegiado.Visible := FUserControl.User.UsePrivilegedField
|
|||
|
|
else
|
|||
|
|
ckUserExpired.Visible := False;
|
|||
|
|
|
|||
|
|
EditLogin.CharCase := Self.FUserControl.Login.CharCaseUser;
|
|||
|
|
|
|||
|
|
SpinExpira.Visible := ckUserExpired.Visible;
|
|||
|
|
LabelExpira.Visible := ckUserExpired.Visible;
|
|||
|
|
LabelDias.Visible := ckUserExpired.Visible;
|
|||
|
|
|
|||
|
|
if (FUserControl.User.ProtectAdministrator) and (EditLogin.Text = FUserControl.Login.InitialLogin.User) then
|
|||
|
|
EditLogin.Enabled := False;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
procedure TfrmIncluirUsuario.ckUserExpiredClick(Sender: TObject);
|
|||
|
|
begin
|
|||
|
|
SpinExpira.Enabled := ckUserExpired.Checked;
|
|||
|
|
end;
|
|||
|
|
|
|||
|
|
end.
|
|||
|
|
|