⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ucbase.pas

📁 delphi 控件有需要的可以下载看看,可以用的,希望对你用 帮助
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    with TableUsers do
    begin
      if TableName = ''       then TableName := 'UCTabUsers';
      if FieldUserID = ''     then FieldUserID := 'UCIdUser';
      if FieldUserName = ''   then FieldUserName := 'UCUserName';
      if FieldLogin = ''      then FieldLogin := 'UCLogin';
      if FieldPassword = ''   then FieldPassword := 'UCPassword';
      if FieldEmail = ''      then FieldEmail := 'UCEmail';
      if FieldPrivileged = '' then FieldPrivileged := 'UCPrivileged';
      if FieldTypeRec = ''    then FieldTypeRec := 'UCTypeRec';
      if FieldProfile = ''    then FieldProfile := 'UCProfile';
      if FieldKey = ''        then FieldKey := 'UCKey';
    end;
    with TableRights do
    begin
      if TableName = ''          then TableName := 'UCTabRights';
      if FieldUserID = ''        then FieldUserID := 'UCIdUser';
      if FieldModule = ''        then FieldModule := 'UCModule';
      if FieldComponentName = '' then FieldComponentName := 'UCCompName';
      if FieldFormName = ''      then FieldFormName := 'UCFormName';
      if FieldKey = ''           then FieldKey := 'UCKey'; 
    end;

    if LogControl.TableLog = '' then LogControl.TableLog := 'UCLog';
    if ApplicationID = '' then ApplicationID := 'NewProject';
    if Login.InitialLogin.User = '' then Login.InitialLogin.User := 'Admin';
    if Login.InitialLogin.Password = '' then Login.InitialLogin.Password := '#delphi';
    if Login.InitialLogin.Email = '' then Login.InitialLogin.Email := 'qmd@usercontrol.com.br';
    FAutoStart := True;
    UsersProfile.Active := True;
    UsersForm.UsePrivilegedField := False;
    UsersForm.ProtectAdmin := True;
    NotAllowedItems.MenuVisible := True;
    NotAllowedItems.ActionVisible := True;
  end else begin
    UCControlList := TList.Create;
    LoginMonitorList := TList.Create;
  end;
  IniSettings(Settings);
end;


procedure TUserControl.Loaded;
var
  Contador : integer;
begin
  inherited;
  if not (csDesigning in ComponentState) then
  begin
    for Contador := 0 to Pred(Owner.ComponentCount) do
      if Owner.Components[Contador] is TUCSettings then ApplySettings(TUCSettings(Owner.Components[Contador]));

    //retornou 2.13 qmd

    if Assigned(UsersForm.MenuItem) and (not Assigned(UsersForm.MenuItem.OnClick)) then UsersForm.MenuItem.OnClick := ActionCadUser;
    if Assigned(UsersForm.Action) and (not Assigned(UsersForm.Action.OnExecute)) then UsersForm.Action.OnExecute := ActionCadUser;

    if UsersProfile.Active then
    begin
      if Assigned(UsersProfile.MenuItem) and (not Assigned(UsersProfile.MenuItem.OnClick)) then UsersProfile.MenuItem.OnClick := ActionUserProfile;
      if Assigned(UsersProfile.Action) and (not Assigned(UsersProfile.Action.OnExecute)) then UsersProfile.Action.OnExecute := ActionUserProfile;
    end;

    if Assigned(ChangePasswordForm.MenuItem) and (not Assigned(ChangePasswordForm.MenuItem.OnClick)) then ChangePasswordForm.MenuItem.OnClick := ActionTrocaSenha;
    if Assigned(ChangePasswordForm.Action) and (not Assigned(ChangePasswordForm.Action.OnExecute)) then ChangePasswordForm.Action.OnExecute := ActionTrocaSenha;

    if (LogControl.Active) then
    begin
      if Assigned(LogControl.MenuItem) and (not Assigned(LogControl.MenuItem.OnClick)) then LogControl.MenuItem.OnClick := ActionLog;
      if Assigned(LogControl.Action) and (not Assigned(LogControl.Action.OnExecute))then LogControl.Action.OnExecute := ActionLog;
    end;

    if not Assigned(DataConnector) then raise Exception.Create('Property DataConnector not defined!');

    if ApplicationID = '' then raise Exception.Create(MsgExceptAppID);

    with TableUsers do
    begin
      if TableName = ''       then Exception.Create(MsgExceptUsersTable);
      if FieldUserID = ''     then Exception.Create(MsgExceptUsersTable +#13+#10+ 'FieldUserID***');
      if FieldUserName = ''   then Exception.Create(MsgExceptUsersTable +#13+#10+ 'FieldUserName***');
      if FieldLogin = ''      then Exception.Create(MsgExceptUsersTable +#13+#10+ 'FieldLogin***');
      if FieldPassword = ''   then Exception.Create(MsgExceptUsersTable +#13+#10+ 'FieldPassword***');
      if FieldEmail = ''      then Exception.Create(MsgExceptUsersTable +#13+#10+ 'FieldEmail***');
      if FieldPrivileged = '' then Exception.Create(MsgExceptUsersTable +#13+#10+ 'FieldPrivileged***');
      if FieldTypeRec = ''    then Exception.Create(MsgExceptUsersTable +#13+#10+ 'FieldTypeRec***');
      if FieldKey = ''        then Exception.Create(MsgExceptUsersTable +#13+#10+ 'FieldKey***');
      if FieldProfile = ''    then Exception.Create(MsgExceptUsersTable +#13+#10+ 'FieldProfile***');
    end;
    with TableRights do
    begin
      if TableName = ''          then Exception.Create(MsgExceptRightsTable);
      if FieldUserID = ''        then Exception.Create(MsgExceptRightsTable +#13+#10+ 'FieldProfile***');
      if FieldModule = ''        then Exception.Create(MsgExceptRightsTable +#13+#10+ 'FieldModule***');
      if FieldComponentName = '' then Exception.Create(MsgExceptRightsTable +#13+#10+ 'FieldComponentName***');
      if FieldFormName = ''      then Exception.Create(MsgExceptRightsTable +#13+#10+ 'FieldFormName***');
      if FieldKey = ''           then Exception.Create(MsgExceptRightsTable +#13+#10+ 'FieldKey***');
    end;

    if Assigned(OnStartApplication) then OnStartApplication(self);

    //desviar para thread monitorando conexao ao banco qmd 30/01/2004
    if FAutoStart then
    begin
      FThUCRun := TUCRun.Create(True);
      FThUCRun.AOwner := Self;
      FThUCRun.FreeOnTerminate := True;
      FThUCRun.Resume;
    end;
  end;
end;

procedure TUserControl.ActionUserProfile(Sender : TObject);
begin
  if Assigned(OnCustomUsersProfileForm) then OnCustomUsersProfileForm(Self, FormPerfilUsuarios);
  if FormPerfilUsuarios = nil then CriaProfileUserForm;
  FormPerfilUsuarios.ShowModal;
  FreeAndNil(FormPerfilUsuarios);
end;

procedure TUserControl.CriaProfileUserForm;
begin
  FormPerfilUsuarios := TCadPerfil.Create(self);
  with Settings.UsersProfile, TCadPerfil(FormPerfilUsuarios) do
  begin
    Caption := WindowCaption;
    lbDescricao.Caption := LabelDescription;
    btAdic.Caption := BtAdd;
    BtAlt.Caption := BtChange;
    BtExclui.Caption := BtDelete;
    BtAcess.Caption := BtRights;
    BtExit.Caption := BtClose;
    BtAcess.OnClick := ActionBtPermissProfile;
    UCComponent := Self;
    UCXPStyle.XPSettings := Self.Settings.XpStyleSet;
    UCXPStyle.Active := Self.Settings.XPStyle;
    Position := Self.Settings.WindowsPosition;
  end;

end;


procedure TUserControl.ActionBtPermissProfile(Sender: TObject);
begin
  if TCadPerfil(FormPerfilUsuarios).DSPerfilUser.IsEmpty then Exit;
  UserPermis := TUserPermis.Create(self);
  UserPermis.UCComponent := Self;
  SetWindowProfile;
  UserPermis.lbUser.Caption := TCadPerfil(FormPerfilUsuarios).DSPerfilUser.FieldByName('Nome').asString;
  ActionBtPermissProfileDefault;
end;

procedure TUserControl.SetWindowProfile;
begin
  with Settings.Rights do
  begin
    UserPermis.Caption := WindowCaption;
    UserPermis.LbDescricao.Caption := LabelProfile;
    UserPermis.lbUser.Left := UserPermis.LbDescricao.Left + UserPermis.LbDescricao.Width + 5;
    UserPermis.PageMenu.Caption := PageMenu;
    UserPermis.PageAction.Caption := PageActions;
    UserPermis.BtLibera.Caption := BtUnlock;
    UserPermis.BtBloqueia.Caption := BtLock;
    UserPermis.BtGrava.Caption := BtSave;
    UserPermis.BtCancel.Caption := BtCancel;
    UserPermis.UCXPStyle.XPSettings := Self.Settings.XpStyleSet;
    UserPermis.UCXPStyle.Active := Settings.XPStyle;
  end;
end;


procedure TUserControl.ActionCadUser(Sender: TObject);
begin
  if Assigned(OnCustomUsersForm) then OnCustomUsersForm(Self, FormCadastroUsuarios);
  if FormCadastroUsuarios = nil then CriaCadUserForm;
  FormCadastroUsuarios.ShowModal;
  FreeAndNil(FormCadastroUsuarios);
end;


procedure TUserControl.ActionTrocaSenha(Sender: TObject);
begin
  if Assigned(OnCustomChangePasswordForm) then OnCustomChangePasswordForm(Self, FormTrocarSenha);
  if FormTrocarSenha = nil then CriaTrocaSenhaForm;
  FormTrocarSenha.ShowModal;
  FreeAndNil(FormTrocarSenha);
end;


procedure TUserControl.CriaCadUserForm;
begin
  FormCadastroUsuarios := TCadUser.Create(self);
  with Settings.UsersForm, TCadUser(FormCadastroUsuarios) do
  begin
    Caption := WindowCaption;
    lbDescricao.Caption := LabelDescription;
    btAdic.Caption := BtAdd;
    BtAlt.Caption := BtChange;
    BtExclui.Caption := BtDelete;
    BtAcess.Caption := BtRights;
    BtPass.Caption := BtPassword;
    BtExit.Caption := BtClose;
    BtAcess.OnClick := Self.ActionBtPermiss;
    UCComponent := Self;
    UCXPStyle.XPSettings := Self.Settings.XpStyleSet;
    UCXPStyle.Active := Self.Settings.XPStyle;
    Position := Self.Settings.WindowsPosition;
  end;
end;

procedure TUserControl.ActionBtPermiss(Sender: TObject);
begin
  if TCadUser(FormCadastroUsuarios).DSCadUser.IsEmpty then Exit;
  UserPermis := TUserPermis.Create(self);
  UserPermis.UCComponent := Self;
  SetWindow;
  UserPermis.lbUser.Caption := TCadUser(FormCadastroUsuarios).DSCadUser.FieldByName('Login').asString;
  ActionBtPermissDefault;
end;

procedure TUserControl.SetWindow;
begin
  with Settings.Rights do
  begin
    UserPermis.Caption := WindowCaption;
    UserPermis.LbDescricao.Caption := LabelUser;
    UserPermis.lbUser.Left := UserPermis.LbDescricao.Left + UserPermis.LbDescricao.Width + 5;
    UserPermis.PageMenu.Caption := PageMenu;
    UserPermis.PageAction.Caption := PageActions;
    UserPermis.BtLibera.Caption := BtUnlock;
    UserPermis.BtBloqueia.Caption := BtLOck;
    UserPermis.BtGrava.Caption := BtSave;
    UserPermis.BtCancel.Caption := BtCancel;
    UserPermis.UCXPStyle.XPSettings := Self.Settings.XpStyleSet;
    UserPermis.UCXPStyle.Active := Self.Settings.XPStyle;
  end;
end;

procedure TUserControl.CriaTrocaSenhaForm;
begin
 FormTrocarSenha := TTrocaSenha.Create(Self);
 with Settings.ChangePassword do begin
   TTrocaSenha(FormTrocarSenha).Caption := WindowCaption;
   TTrocaSenha(FormTrocarSenha).lbDescricao.Caption := LabelDescription;
   TTrocaSenha(FormTrocarSenha).lbSenhaAtu.Caption := LabelCurrentPassword;
   TTrocaSenha(FormTrocarSenha).lbNovaSenha.Caption := LabelNewPassword;
   TTrocaSenha(FormTrocarSenha).lbConfirma.Caption := LabelConfirm;
   TTrocaSenha(FormTrocarSenha).btGrava.Caption := BtSave;
   TTrocaSenha(FormTrocarSenha).btCancel.Caption := BtCancel;
   TTrocaSenha(FormTrocarSenha).UCXPStyle.XPSettings := Self.Settings.XpStyleSet;
   TTrocaSenha(FormTrocarSenha).UCXPStyle.Active := Self.Settings.XPStyle;

 end;
 TTrocaSenha(FormTrocarSenha).btGrava.OnClick := ActionTSBtGrava;
 if CurrentUser.Password = '' then TTrocaSenha(FormTrocarSenha).EditAtu.Enabled := False;
end;

procedure TUserControl.ActionTSBtGrava(Sender: TObject);
begin
   if CurrentUser.Password <> TTrocaSenha(FormTrocarSenha).EditAtu.text then
   begin
     MessageDlg(Settings.CommonMessages.ChangePasswordError.InvalidCurrentPassword, mtWarning, [mbOK], 0);
     TTrocaSenha(FormTrocarSenha).EditAtu.SetFocus;
     Exit;
   end;
   if TTrocaSenha(FormTrocarSenha).EditNova.Text <> TTrocaSenha(FormTrocarSenha).EditConfirma.Text then
   begin
     MessageDlg(Settings.CommonMessages.ChangePasswordError.InvalidNewPassword, mtWarning, [mbOK], 0);
     TTrocaSenha(FormTrocarSenha).EditNova.SetFocus;
     Exit;
   end;
   if TTrocaSenha(FormTrocarSenha).EditNova.Text = CurrentUser.Password then
   begin
     MessageDlg(Settings.CommonMessages.ChangePasswordError.NewEqualCurrent, mtWarning, [mbOK], 0);
     TTrocaSenha(FormTrocarSenha).EditNova.SetFocus;
     Exit;
   end;
   if (ChangePasswordForm.ForcePassword) and (TTrocaSenha(FormTrocarSenha).EditNova.Text = '') then
   begin
     MessageDlg( Settings.CommonMessages.ChangePasswordError.PasswordRequired, mtWarning, [mbOK], 0);
     TTrocaSenha(FormTrocarSenha).EditNova.Text;
     Exit;
   end;
   if Length(TTrocaSenha(FormTrocarSenha).EditNova.Text) < ChangePasswordForm.MinPasswordLength then
   begin
     MessageDlg(Format(Settings.CommonMessages.ChangePasswordError.MinPasswordLength,[ChangePasswordForm.MinPasswordLength]), mtWarning, [mbOK], 0);
     TTrocaSenha(FormTrocarSenha).EditNova.SetFocus;
     Exit;
   end;
   if Pos(LowerCase(TTrocaSenha(FormTrocarSenha).EditNova.Text),'asdfqwerzxcv1234567890321654987teste'+LowerCase(CurrentUser.Username) + LowerCase(CurrentUser.LoginName)) > 0 then
   begin
     MessageDlg( Settings.CommonMessages.ChangePasswordError.InvalidNewPassword, mtWarning, [mbOK], 0);
     TTrocaSenha(FormTrocarSenha).EditNova.SetFocus;
     Exit;
   end;

   if Assigned( OnChangePassword) then OnChangePassword(Self, CurrentUser.UserID, CurrentUser.LoginName, CurrentUser.Password,TTrocaSenha(FormTrocarSenha).EditNova.Text);
   ChangePassword(CurrentUser.UserID, TTrocaSenha(FormTrocarSenha).EditNova.Text);

   CurrentUser.Password := TTrocaSenha(FormTrocarSenha).EditNova.Text;
   if CurrentUser.Password = '' then MessageDlg(Format(Settings.CommonMessages.BlankPassword,[CurrentUser.LoginName]) , mtInformation, [mbOK], 0)
   else MessageDlg(Settings.CommonMessages.PasswordChanged, mtInformation, [mbOK], 0);

//oif Check for E-Mail Control
{$IFDEF VER130}
{$ELSE}
   if ( Assigned(MailUserControl) ) and (MailUserControl.SenhaTrocada.Ativo) then
   begin
     with CurrentUser do
     begin
       try
         MailUserControl.EnviaEmailSenhaTrocada( Username, LoginName, TTrocaSenha(FormTrocarSenha).EditNova.Text, Email, '', EncryptKey);
       except
         on e : Exception do Log(e.Message,2);
       end;
     end;
   end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -