- Cambiado el formato de fechas 'mm/dd/yyyy' a 'dd/mm/yyyy'. git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.UserControl@14 970f2627-a9d2-4748-b3d4-b5283c4fe7db
241 lines
8.7 KiB
ObjectPascal
241 lines
8.7 KiB
ObjectPascal
unit CadUser_U;
|
|
|
|
interface
|
|
|
|
{$I 'UserControl.inc'}
|
|
|
|
uses
|
|
{$IFDEF DELPHI5_UP}
|
|
Variants,
|
|
{$ENDIF}
|
|
Buttons,
|
|
Classes,
|
|
Controls,
|
|
DB,
|
|
DBGrids,
|
|
Dialogs,
|
|
ExtCtrls,
|
|
Forms,
|
|
Graphics,
|
|
Grids,
|
|
IncUser_U,
|
|
Menus,
|
|
Messages,
|
|
StdCtrls,
|
|
SysUtils,
|
|
UCBase,
|
|
Windows;
|
|
|
|
type
|
|
TfrmCadastrarUsuario = class(TForm)
|
|
DataSource1: TDataSource;
|
|
DBGrid1: TDBGrid;
|
|
Panel1: TPanel;
|
|
lbDescricao: TLabel;
|
|
Image1: TImage;
|
|
PopupMenu1: TPopupMenu;
|
|
Alterar1: TMenuItem;
|
|
Excluir1: TMenuItem;
|
|
N1: TMenuItem;
|
|
Permisses1: TMenuItem;
|
|
Panel3: TPanel;
|
|
btAdic: TBitBtn;
|
|
BtAlt: TBitBtn;
|
|
BtExclui: TBitBtn;
|
|
BtAcess: TBitBtn;
|
|
BtExit: TBitBtn;
|
|
BtPass: TBitBtn;
|
|
DataSource2: TDataSource;
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
procedure BtExitClick(Sender: TObject);
|
|
procedure btAdicClick(Sender: TObject);
|
|
procedure BtAltClick(Sender: TObject);
|
|
procedure BtExcluiClick(Sender: TObject);
|
|
procedure DBGrid1DblClick(Sender: TObject);
|
|
procedure BtPassClick(Sender: TObject);
|
|
procedure SetWindow(Adicionar: Boolean);
|
|
procedure FDataSetCadastroUsuarioAfterScroll(DataSet: TDataSet);
|
|
procedure FormShow(Sender: TObject);
|
|
private
|
|
FLockAdmin: Boolean;
|
|
FDataSetPerfilUsuario: TDataset;
|
|
FfrmIncluirUsuario: TfrmIncluirUsuario;
|
|
FormSenha : TCustomForm;
|
|
public
|
|
FUserControl: TUserControl;
|
|
FDataSetCadastroUsuario: TDataset;
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
Consts, UCMessages,SenhaForm_U;
|
|
|
|
{$R *.dfm}
|
|
|
|
procedure TfrmCadastrarUsuario.FormClose(Sender: TObject; var Action: TCloseAction);
|
|
begin
|
|
Action := caFree;
|
|
end;
|
|
|
|
procedure TfrmCadastrarUsuario.BtExitClick(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
procedure TfrmCadastrarUsuario.btAdicClick(Sender: TObject);
|
|
begin
|
|
FfrmIncluirUsuario := TfrmIncluirUsuario.Create(Self);
|
|
FfrmIncluirUsuario.FUserControl := Self.FUserControl;
|
|
SetWindow(True);
|
|
FfrmIncluirUsuario.ShowModal;
|
|
FreeAndNil(FfrmIncluirUsuario);
|
|
end;
|
|
|
|
procedure TfrmCadastrarUsuario.SetWindow(Adicionar: Boolean);
|
|
begin
|
|
with TUserControl(owner).UserSettings.AddChangeUser do
|
|
begin
|
|
FfrmIncluirUsuario.Caption := WindowCaption;
|
|
if Adicionar then
|
|
FfrmIncluirUsuario.LbDescricao.Caption := LabelAdd
|
|
else
|
|
FfrmIncluirUsuario.LbDescricao.Caption := LabelChange;
|
|
|
|
FfrmIncluirUsuario.lbNome.Caption := LabelName;
|
|
FfrmIncluirUsuario.lbLogin.Caption := LabelLogin;
|
|
FfrmIncluirUsuario.lbEmail.Caption := LabelEmail;
|
|
FfrmIncluirUsuario.ckPrivilegiado.Caption := CheckPrivileged;
|
|
FfrmIncluirUsuario.lbPerfil.Caption := LabelPerfil;
|
|
FfrmIncluirUsuario.btGravar.Caption := BtSave;
|
|
FfrmIncluirUsuario.btCancela.Caption := BtCancel;
|
|
FfrmIncluirUsuario.Position := Self.FUserControl.UserSettings.WindowsPosition;
|
|
FfrmIncluirUsuario.LabelExpira.Caption := ExpiredIn;
|
|
FfrmIncluirUsuario.LabelDias.Caption := Day;
|
|
FfrmIncluirUsuario.ckUserExpired.Caption := CheckExpira;
|
|
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmCadastrarUsuario.BtAltClick(Sender: TObject);
|
|
begin
|
|
if FDataSetCadastroUsuario.IsEmpty then
|
|
Exit;
|
|
FfrmIncluirUsuario := TfrmIncluirUsuario.Create(Self);
|
|
FfrmIncluirUsuario.FUserControl := Self.FUserControl;
|
|
SetWindow(False);
|
|
with FfrmIncluirUsuario do
|
|
begin
|
|
FAltera := True;
|
|
EditNome.Text := FDataSetCadastroUsuario.FieldByName('Nome').AsString;
|
|
EditLogin.Text := FDataSetCadastroUsuario.FieldByName('Login').AsString;
|
|
EditEmail.Text := FDataSetCadastroUsuario.FieldByName('Email').AsString;
|
|
ComboPerfil.KeyValue := FDataSetCadastroUsuario.FieldByName('Perfil').AsInteger;
|
|
ckPrivilegiado.Checked := StrToBool(FDataSetCadastroUsuario.FieldByName('Privilegiado').AsString);
|
|
ckUserExpired.Checked := StrToBool(FDataSetCadastroUsuario.FieldByName('UserNaoExpira').AsString); //Added by Petrus v Breda 28/4/2007
|
|
SpinExpira.Value := FDataSetCadastroUsuario.FieldByName('DaysOfExpire').AsInteger;
|
|
ShowModal;
|
|
end;
|
|
FreeAndNil(FfrmIncluirUsuario);
|
|
end;
|
|
|
|
procedure TfrmCadastrarUsuario.BtExcluiClick(Sender: TObject);
|
|
var
|
|
TempID: Integer;
|
|
CanDelete: Boolean;
|
|
ErrorMsg: String;
|
|
begin
|
|
if FDataSetCadastroUsuario.IsEmpty then
|
|
Exit;
|
|
TempID := FDataSetCadastroUsuario.FieldByName('IDUser').AsInteger;
|
|
//changed by fduenas: using PromptDelete_WindowCaption and Format functiom
|
|
if MessageBox(Handle, PChar(Format(FUserControl.UserSettings.UsersForm.PromptDelete, [FDataSetCadastroUsuario.FieldByName('Login').AsString])), PChar(FUserControl.UserSettings.UsersForm.PromptDelete_WindowCaption), MB_ICONQUESTION or MB_YESNO or MB_DEFBUTTON2) = idYes then
|
|
begin
|
|
CanDelete := True;
|
|
if Assigned(FUserControl.onDeleteUser) then
|
|
FUserControl.onDeleteUser(TObject(Owner), TempID, CanDelete, ErrorMsg);
|
|
if not CanDelete then
|
|
begin
|
|
MessageDlg(ErrorMSG, mtWarning, [mbOK], 0);
|
|
Exit;
|
|
end;
|
|
|
|
FUserControl.DataConnector.UCExecSQL('Delete from ' + FUserControl.TableRights.TableName + ' where ' + FUserControl.TableRights.FieldUserID + ' = ' + IntToStr(TempID));
|
|
FUserControl.DataConnector.UCExecSQL('Delete from ' + FUserControl.TableUsers.TableName + ' where ' + FUserControl.TableRights.FieldUserID + ' = ' + IntToStr(TempID));
|
|
FDataSetCadastroUsuario.Close;
|
|
FDataSetCadastroUsuario.Open;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmCadastrarUsuario.DBGrid1DblClick(Sender: TObject);
|
|
begin
|
|
BtAlt.Click;
|
|
end;
|
|
|
|
procedure TfrmCadastrarUsuario.BtPassClick(Sender: TObject);
|
|
begin
|
|
if FDataSetCadastroUsuario.IsEmpty then
|
|
Exit;
|
|
|
|
FormSenha := TSenhaForm.Create( Self );
|
|
TSenhaForm(FormSenha).Position := fUserControl.UserSettings.WindowsPosition;
|
|
TSenhaForm(FormSenha).fUserControl := fUserControl;
|
|
TSenhaForm(FormSenha).Caption := Format(FUserControl.UserSettings.ResetPassword.WindowCaption, [ FDataSetCadastroUsuario.FieldByName('Login').AsString ]);
|
|
If TSenhaForm(FormSenha).ShowModal = mrok then
|
|
FUserControl.ChangePassword(FDataSetCadastroUsuario.FieldByName('IDUser').AsInteger, TSenhaForm(FormSenha).edtSenha.Text );
|
|
FreeAndNil( FormSenha );
|
|
end;
|
|
|
|
procedure TfrmCadastrarUsuario.FDataSetCadastroUsuarioAfterScroll(DataSet: TDataSet);
|
|
begin
|
|
if (FLockAdmin) and (Dataset.FieldByName('Login').AsString = TUserControl(Owner).Login.InitialLogin.User) then
|
|
begin
|
|
BtExclui.Enabled := False;
|
|
BtPass.Enabled := False;
|
|
Excluir1.Enabled := False;
|
|
Permisses1.Enabled := False;
|
|
if TUserControl(Owner).CurrentUser.Username <> TUserControl(Owner).Login.InitialLogin.User then
|
|
BtAcess.Enabled := False;
|
|
end
|
|
else
|
|
begin
|
|
BtExclui.Enabled := True;
|
|
BtPass.Enabled := True;
|
|
BtAcess.Enabled := True;
|
|
Excluir1.Enabled := True;
|
|
Permisses1.Enabled := True;
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmCadastrarUsuario.FormShow(Sender: TObject);
|
|
begin
|
|
FLockAdmin := FUserControl.User.ProtectAdministrator;
|
|
|
|
with FUserControl do
|
|
begin
|
|
FDataSetCadastroUsuario := DataConnector.UCGetSQLDataset(
|
|
Format('Select %s as IdUser, %s as Login, %s as Nome, %s as Email, %s as Perfil, %s as Privilegiado, %s as Tipo, %s as Senha, %s as UserNaoExpira, %s as DaysOfExpire from %s Where %s = %s ORDER BY %s',
|
|
[TableUsers.FieldUserID, TableUsers.FieldLogin, TableUsers.FieldUserName, TableUsers.FieldEmail, TableUsers.FieldProfile, TableUsers.FieldPrivileged, TableUsers.FieldTypeRec, TableUsers.FieldPassword,
|
|
TableUsers.FieldUserExpired, TableUsers.FieldUserDaysSun, TableUsers.TableName, TableUsers.FieldTypeRec, QuotedStr('U'), TableUsers.FieldLogin]));
|
|
|
|
|
|
DBGrid1.Columns[0].Title.Caption := UserSettings.UsersForm.ColName;
|
|
DBGrid1.Columns[1].Title.Caption := UserSettings.UsersForm.ColLogin;
|
|
DBGrid1.Columns[2].Title.Caption := UserSettings.UsersForm.ColEmail;
|
|
|
|
FDataSetPerfilUsuario := DataConnector.UCGetSQLDataset(
|
|
Format('Select %s as IdUser, %s as Login, %s as Nome, %s as Tipo from %s Where %s = %s ORDER BY %s',
|
|
[TableUsers.FieldUserID, TableUsers.FieldLogin, TableUsers.FieldUserName, TableUsers.FieldTypeRec,
|
|
TableUsers.TableName, TableUsers.FieldTypeRec, QuotedStr('P'), TableUsers.FieldUserName]));
|
|
|
|
end;
|
|
|
|
DataSource1.Dataset := FDataSetCadastroUsuario;
|
|
DataSource2.Dataset := FDataSetPerfilUsuario;
|
|
FDataSetCadastroUsuario.AfterScroll := FDataSetCadastroUsuarioAfterScroll;
|
|
FDataSetCadastroUsuarioAfterScroll(FDataSetCadastroUsuario);
|
|
end;
|
|
|
|
end.
|
|
|