#region License Information /* HeuristicLab * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL) * * This file is part of HeuristicLab. * * HeuristicLab is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * HeuristicLab is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with HeuristicLab. If not, see . */ #endregion using System; using System.Windows.Forms; using HeuristicLab.Core.Views; using HeuristicLab.MainForm; namespace HeuristicLab.Clients.Access.Administration { [View("User View")] [Content(typeof(User), true)] public partial class UserView : ItemView { public new User Content { get { return (User)base.Content; } set { base.Content = value; } } public UserView() { InitializeComponent(); } protected override void OnContentChanged() { base.OnContentChanged(); if (Content == null) { userNameTextBox.Clear(); fullNameTextBox.Clear(); emailTextBox.Clear(); idTextBox.Clear(); lastActivityTextBox.Clear(); lastLoginTextBox.Clear(); refreshableRoleSelectionListView.Content = null; refreshableRoleSelectionListView.CurrentUser = null; } else { userNameTextBox.Text = Content.UserName; fullNameTextBox.Text = Content.FullName; emailTextBox.Text = Content.Email; idTextBox.Text = Content.Id.ToString(); lastActivityTextBox.Text = Content.LastActivityDate.ToString(); lastLoginTextBox.Text = Content.LastLoginDate.ToString(); refreshableRoleSelectionListView.Content = Content.Id != Guid.Empty ? AccessAdministrationClient.Instance : null; refreshableRoleSelectionListView.CurrentUser = Content; } } protected override void SetEnabledStateOfControls() { base.SetEnabledStateOfControls(); bool enabled = Content != null && !Locked; userNameTextBox.ReadOnly = !enabled; fullNameTextBox.ReadOnly = !enabled; emailTextBox.ReadOnly = !enabled; if (Content == null) { resetPasswordButton.Enabled = false; } else { resetPasswordButton.Enabled = Content.Id != Guid.Empty; } } private void fullNameTextBox_TextChanged(object sender, System.EventArgs e) { if (Content.FullName != fullNameTextBox.Text) Content.FullName = fullNameTextBox.Text; } private void userNameTextBox_TextChanged(object sender, System.EventArgs e) { if (Content.UserName != userNameTextBox.Text) Content.UserName = userNameTextBox.Text; } private void emailTextBox_TextChanged(object sender, System.EventArgs e) { if (Content.Email != emailTextBox.Text) Content.Email = emailTextBox.Text; } private void resetPasswordButton_Click(object sender, System.EventArgs e) { Action a = new Action(delegate { string result = AccessAdministrationClient.CallAccessService(s => s.ResetPassword(Content.Id)); ShowPassword(result); }); AccessAdministrationClient.Instance.ExecuteActionAsync(a, PluginInfrastructure.ErrorHandling.ShowErrorDialog); ; } private void ShowPassword(string result) { if (InvokeRequired) { Invoke(new Action(ShowPassword), result); } else { using (PasswordDisplayDialog dlg = new PasswordDisplayDialog()) { dlg.Password = result; dlg.ShowDialog(this); } } } } }