Example #1
0
 private void comboBoxUserType_SelectedIndexChanged(object sender, EventArgs e)
 {
     textBoxStudentName.Text = String.Empty;
     textBoxPassword.Text    = String.Empty;
     SetFormEnableMode(true);
     _resultUser = null;
 }
Example #2
0
        private void buttonOK_Click(object sender, EventArgs e)
        {
            AddUserForm addUserForm = new AddUserForm(false);

            if (addUserForm.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            _resultUser = addUserForm.ResultUser;
            LocalTestingProvider provider     = null;
            TestHelper           selectedTest = listBox.SelectedItem as TestHelper;

            if (selectedTest.IsMasterTest)
            {
                provider = new LocalTestingProvider(DataCreator.CreateFullTestorDataSet(_testHelpers),
                                                    selectedTest);
            }
            else
            {
                provider = new LocalTestingProvider(selectedTest.TestorData,
                                                    selectedTest);
            }
            provider.SetStudentName(String.Format("{0} {1} {2}", HtmlStore.GetString(_resultUser.LastName),
                                                  HtmlStore.GetString(_resultUser.FirstName), HtmlStore.GetString(_resultUser.SecondName)));
            TestForm testForm = new TestForm(provider);

            testForm.ShowDialog();
        }
Example #3
0
        public void AddUser()
        {
            SynchronizationContext context = SynchronizationContext.Current;

            SystemStateManager.OnStateChanged(true);
            _currentThread = new Thread(new ThreadStart(() =>
            {
                try
                {
                    TestorCoreUser user = ResultUser;
                    if (!_isAlterMode)
                    {
                        _resultUser = StaticServerProvider.UserManagement.CreateUser(user);
                    }
                    else
                    {
                        StaticServerProvider.UserManagement.AlterUser(_resultUser, true);
                    }
                    context.Send(d =>
                    {
                        SystemStateManager.OnStateChanged(false);
                        this.DialogResult = DialogResult.OK;
                    }, null);
                }
                catch (Exception ex)
                {
                    context.Send(d =>
                    {
                        SystemMessage.ShowErrorMessage(d as Exception);
                        SystemStateManager.OnStateChanged(false);
                    }, ex);
                }
            }));
            _currentThread.Start();
        }
Example #4
0
 //Не является операцией сервиса
 internal void SetUserSettings(User testorUser, TestorCoreUser user, bool isUpdate, bool isAdminEdit, DataClassesTestorCoreDataContext dataContext)
 {
     testorUser.LastName   = user.LastName;
     testorUser.FirstName  = user.FirstName;
     testorUser.SecondName = user.SecondName;
     if (!isUpdate)
     {
         if (user.IsLocalUser && String.IsNullOrEmpty(user.Login))
         {
             testorUser.Login = Guid.NewGuid().ToString();
         }
         else
         {
             testorUser.Login = user.Login;
         }
         if (!String.IsNullOrEmpty(user.Password))
         {
             testorUser.Password = user.Password;
         }
         else
         {
             testorUser.Password = "******";
         }
         if (user.IsLocalUser)
         {
             testorUser.Status = (short)TestorUserStatus.LocalNetUser;
         }
         else
         {
             testorUser.Status = (short)TestorUserStatus.NotActivated;
         }
         testorUser.UserRole = (short)TestorUserRole.Student;
     }
     else
     {
         testorUser.Status = (short)user.Status;
         if (isAdminEdit || Provider.CurrentUser.UserRole == TestorUserRole.Administrator)
         {
             testorUser.UserRole = (short)user.UserRole;
         }
         if (testorUser.Login != user.Login)
         {
             testorUser.Login = user.Login;
         }
         if (!String.IsNullOrEmpty(user.Password) && testorUser.Password != user.Password)
         {
             testorUser.Password = user.Password;
         }
     }
     if (!String.IsNullOrEmpty(user.NewPassword) && isUpdate)
     {
         testorUser.Password = user.NewPassword;
     }
     testorUser.Email      = user.Email;
     testorUser.Sex        = user.Sex;
     testorUser.Birthday   = user.Birthday;
     testorUser.StudNumber = user.StudNumber;
 }
Example #5
0
        private void buttonAddUser_Click(object sender, EventArgs e)
        {
            AddUserForm addUserForm = new AddUserForm();

            if (addUserForm.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            _resultUser       = addUserForm.ResultUser;
            this.DialogResult = DialogResult.OK;
        }
Example #6
0
        public TestorCoreUser CreateUser(TestorCoreUser user)
        {
            Provider.TestRoles(TestorUserRole.Anonymous, TestorUserRole.Administrator, TestorUserRole.Teacher, TestorUserRole.Laboratorian);

            if (user.UserRole != TestorUserRole.Student && user.UserRole != TestorUserRole.NotDefined)
            {
                Provider.ThrowAccessFaultException();
            }

            return(CreateSystemUser(user));
        }
Example #7
0
        private void buttonSelectStudent_Click(object sender, EventArgs e)
        {
            ClientSelectUserForm selectUser = new ClientSelectUserForm();

            if (selectUser.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            _resultUser             = selectUser.ResultUser;
            textBoxStudentName.Text = String.Format("{0} {1} {2}", HtmlStore.GetString(_resultUser.LastName),
                                                    HtmlStore.GetString(_resultUser.FirstName), HtmlStore.GetString(_resultUser.SecondName));
        }
Example #8
0
 private void buttonOK_Click(object sender, EventArgs e)
 {
     _resultUser = testorCoreUserDataGridView.SelectedUser;
     if (_resultUser != null)
     {
         this.DialogResult = DialogResult.OK;
     }
     else
     {
         this.DialogResult = DialogResult.Cancel;
     }
 }
Example #9
0
 //Не является операцией сервиса
 public TestorCoreUser CreateSystemUser(TestorCoreUser user)
 {
     using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString))
     {
         User testorUser = new User();
         SetUserSettings(testorUser, user, false, false, dataContext);
         dataContext.Users.InsertOnSubmit(testorUser);
         SetUserGroups(testorUser, user.UserGroups, dataContext);
         dataContext.SubmitChanges();
         return(UserSearchHelper.GetUsers(dataContext.Users.Where(c => c == testorUser), true)[0]);
     }
 }
Example #10
0
        private void linkLabelSelectStudent_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
        {
            ClientSelectUserForm selectUser = new ClientSelectUserForm();

            if (selectUser.ShowDialog() != DialogResult.OK)
            {
                _resultUser         = null;
                textBoxStudent.Text = String.Empty;
            }
            else
            {
                _resultUser         = selectUser.ResultUser;
                textBoxStudent.Text = String.Format("{0} {1} {2}", HtmlStore.GetString(_resultUser.LastName),
                                                    HtmlStore.GetString(_resultUser.FirstName), HtmlStore.GetString(_resultUser.SecondName));
            }
            GetStatistics();
        }
Example #11
0
        public AddUserForm(TestorCoreUser user)
            : this()
        {
            _isAlterMode                 = true;
            _resultUser                  = user;
            textBoxLastName.Text         = _resultUser.LastName;
            textBoxFirstName.Text        = _resultUser.FirstName;
            textBoxSecondName.Text       = _resultUser.SecondName;
            radioButtonMale.Checked      = _resultUser.Sex;
            radioButtonFemale.Checked    = !_resultUser.Sex;
            dateTimePickerBirthday.Value = _resultUser.Birthday >= dateTimePickerBirthday.MinDate ? _resultUser.Birthday : dateTimePickerBirthday.MinDate;
            textBoxStudNumber.Text       = _resultUser.StudNumber;
            SynchronizationContext context = SynchronizationContext.Current;

            SystemStateManager.OnStateChanged(true);
            _currentThread = new Thread(new ThreadStart(() =>
            {
                try
                {
                    _groups = StaticServerProvider.UserManagement.GetUserGroups(_resultUser.UserId);
                    context.Send(d =>
                    {
                        if (_groups.Length > 0)
                        {
                            _selectedGroup    = (d as TestorTreeItem[])[0];
                            textBoxGroup.Text = _selectedGroup.ItemName;
                        }
                        SystemStateManager.OnStateChanged(false);
                    }, _groups);
                }
                catch (Exception ex)
                {
                    context.Send(d =>
                    {
                        SystemMessage.ShowErrorMessage(d as Exception);
                        SystemStateManager.OnStateChanged(false);
                    }, ex);
                }
            }));
            _currentThread.Start();
            buttonSelectGroup.Enabled = !_isAlterMode;
        }
        private void buttonOK_Click(object sender, EventArgs e)
        {
            SynchronizationContext context = SynchronizationContext.Current;

            _user.UserRole = (TestorUserRole)comboBoxRole.SelectedIndex + 1;
            _user.Status   = (TestorUserStatus)comboBoxStatus.SelectedIndex;
            if (textBoxPassword1.Text != _defaultPassword || textBoxPassword2.Text != _defaultPassword)
            {
                if (textBoxPassword1.Text != textBoxPassword2.Text)
                {
                    SystemMessage.ShowWarningMessage("Пароли не совпадают.");
                    return;
                }
                else
                {
                    _user.Password = textBoxPassword1.Text;
                }
            }
            _user.UserGroups = _userGroups.ToArray();
            SystemStateManager.OnStateChanged(true);
            _currentThread = new Thread(new ThreadStart(() =>
            {
                try
                {
                    _user = StaticServerProvider.UserManagement.AlterUser(_user, true);
                    context.Send(d =>
                    {
                        SystemStateManager.OnStateChanged(false);
                        this.DialogResult = DialogResult.OK;
                    }, null);
                }
                catch (Exception ex)
                {
                    context.Send(d =>
                    {
                        SystemMessage.ShowErrorMessage(d as Exception);
                        SystemStateManager.OnStateChanged(false);
                    }, ex);
                }
            }));
            _currentThread.Start();
        }
        public UserAdditionalSettingsForm(TestorCoreUser user)
        {
            InitializeComponent();
            _user = new TestorCoreUser(user);
            SetAccessMode();
            _userGroups = new List <TestorTreeItem>();
            dataGridViewGroups.AutoGenerateColumns = false;
            comboBoxRole.SelectedIndex             = (int)_user.UserRole - 1;
            comboBoxStatus.SelectedIndex           = (int)_user.Status;
            textBoxUserName.DataBindings.Add("Text", _user, "Login", false);
            textBoxEmail.DataBindings.Add("Text", _user, "Email", false);
            textBoxPassword1.Text = _defaultPassword;
            textBoxPassword2.Text = _defaultPassword;
            SystemStateManager.OnStateChanged(true);
            SynchronizationContext context = SynchronizationContext.Current;

            _currentThread = new Thread(new ThreadStart(() =>
            {
                try
                {
                    _userGroups.AddRange(StaticServerProvider.UserManagement.GetUserGroups(_user.UserId));
                    context.Send(d =>
                    {
                        _bindingSource.DataSource     = _userGroups;
                        dataGridViewGroups.DataSource = _bindingSource;
                        SystemStateManager.OnStateChanged(false);
                    }, null);
                }
                catch (Exception ex)
                {
                    context.Send(d =>
                    {
                        SystemMessage.ShowErrorMessage(d as Exception);
                        SystemStateManager.OnStateChanged(false);
                    }, ex);
                }
            }));
            _currentThread.Start();
            SystemStateManager.StateChanged += new EventHandler <EventArgs>(SystemStateManager_StateChanged);
        }
Example #14
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Context.User.Identity.IsAuthenticated)
            {
                Response.Redirect("~/Default.aspx");
            }
            if (!IsPostBack)
            {
                InitAppointedTests();
            }
            var    currentUser = LocalUser.SecurityProvider.CurrentUser;
            string userName    = String.Format(":: {0} {1} {2}", HtmlStore.GetString(currentUser.LastName),
                                               HtmlStore.GetString(currentUser.FirstName), HtmlStore.GetString(currentUser.SecondName));
            Label lbl = (this.Master.FindControl("userName") as Label);

            if (String.IsNullOrEmpty(userName.Trim()))
            {
                lbl.Text = currentUser.Login;
            }
            else
            {
                lbl.Text = userName;
            }
            TestorCoreUser user = LocalUser.SecurityProvider.CurrentUser;

            if (LocalUser.IsIntranet)
            {
                user.Email = "скрыт";
            }
            user.UserGroups     = LocalUser.UserManagement.GetUserGroups(user.UserId);
            userForm.DataSource = new TestorCoreUser[] { user };
            userForm.DataBind();

            List <TestSessionStatistics> statistics = new List <TestSessionStatistics>();

            statistics.AddRange(LocalUser.TestClient.GetStatistics(new DateTime(1900, 1, 1), DateTime.MaxValue,
                                                                   0, 0, LocalUser.SecurityProvider.CurrentUser.UserId));
            GridViewSessions.DataSource = statistics;
            GridViewSessions.DataBind();
        }
Example #15
0
        public TestorCoreUser AlterUser(TestorCoreUser user, bool alterGroups)
        {
            Debug.Assert(user.UserId > 0);

            Provider.TestRoles(TestorUserRole.Administrator, TestorUserRole.Teacher, TestorUserRole.Laboratorian);

            using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString))
            {
                if (user.UserId <= 0)
                {
                    return(null);
                }
                var testorUser = dataContext.Users.Where(c => c.UserId == user.UserId).FirstOrDefault();
                if (testorUser != null)
                {
                    TestorUserRole alterRole = (TestorUserRole)testorUser.UserRole;
                    if (user.UserId != Provider.CurrentUser.UserId)
                    {
                        if (Provider.CurrentUser.UserRole != TestorUserRole.Administrator && !(alterRole == TestorUserRole.Student || alterRole == TestorUserRole.Anonymous ||
                                                                                               alterRole == TestorUserRole.NotDefined))
                        {
                            Provider.ThrowAccessFaultException();
                            return(null);
                        }
                    }
                    if (alterRole != user.UserRole && Provider.CurrentUser.UserRole != TestorUserRole.Administrator)
                    {
                        user.UserRole = alterRole;
                    }
                    SetUserSettings(testorUser, user, true, false, dataContext);
                    if (Provider.CurrentUser.UserRole == TestorUserRole.Administrator && alterGroups)
                    {
                        SetUserGroups(testorUser, user.UserGroups, dataContext);
                    }
                    dataContext.SubmitChanges();
                }
                return(UserSearchHelper.GetUser(testorUser));
            }
        }
Example #16
0
        private void ToolStripMenuItemAdditional_Click(object sender, EventArgs e)
        {
            if (SystemStateManager.TestState())
            {
                return;
            }
            var                        row          = testorCoreUserDataGridView.SelectedRows[0];
            TestorCoreUser             selUser      = testorCoreUserDataGridView.SelectedUser;
            TestorUserRole             role         = selUser.UserRole;
            TestorUserStatus           status       = selUser.Status;
            UserAdditionalSettingsForm settingsForm = new UserAdditionalSettingsForm(selUser);

            if (settingsForm.ShowDialog() != DialogResult.OK)
            {
                return;
            }
            if (settingsForm.User.UserRole != role || (settingsForm.User.Status == TestorUserStatus.Removed && status != TestorUserStatus.Removed) ||
                (status == TestorUserStatus.Removed && settingsForm.User.Status != TestorUserStatus.Removed))
            {
                testorCoreUserDataGridView.Rows.Remove(row);
            }
            selUser.SetSettings(settingsForm.User);
            toolStripTextBoxSearch_TextChanged(this, new EventArgs());
        }
Example #17
0
        protected void Btn_Reg_Click(object sender, EventArgs e)
        {
            int groupId = 0;

            TextBoxPassword.Attributes["Value"]       = TextBoxPassword.Text;
            TextBoxSecondPassword.Attributes["Value"] = TextBoxSecondPassword.Text;
            if (LocalUser.IsIntranet)
            {
                if (ViewState["SelectedNode"] != null)
                {
                    int.TryParse((string)ViewState["SelectedNode"], out groupId);
                }

                if (groupId == 0 || ViewState["SelectedNode"] == null)
                {
                    aspErrorMessage.Visible = true;
                    aspErrorMessage.Text    = "Выберите группу (Факультет -> Кафедра -> Группа).";
                    return;
                }
            }
            if (TextBoxCaptcha.Text.ToLower() != this.Session["CaptchaImageText"].ToString().ToLower())
            {
                aspErrorMessage.Visible          = true;
                aspErrorMessage.Text             = "Введён неправильный секретный код";
                TextBoxCaptcha.Text              = String.Empty;
                this.Session["CaptchaImageText"] = GenerateRandomCode();
                return;
            }
            else
            {
                TextBoxCaptcha.Text = String.Empty;
                this.Session["CaptchaImageText"] = GenerateRandomCode();
                aspErrorMessage.Visible          = false;
            }
            if (TextBoxLogin.Text.Trim().Contains(' ') || TextBoxPassword.Text.Contains(' '))
            {
                aspErrorMessage.Visible = true;
                aspErrorMessage.Text    = "Логин и пароль не могут содержать пробелы";
                return;
            }
            if (TextBoxPassword.Text != TextBoxSecondPassword.Text)
            {
                aspErrorMessage.Visible = true;
                aspErrorMessage.Text    = "Пароли не совпадают";
                return;
            }
            using (DataClassesTestorCoreDataContext dataContext = new DataClassesTestorCoreDataContext(TestorSecurityProvider.ConnectionString))
            {
                string eMail = TextBoxEmail.Text.Trim().ToLower();
                if (!String.IsNullOrEmpty(eMail) && dataContext.Users.Where(c => c.Email == eMail).Count() > 0)
                {
                    aspErrorMessage.Visible = true;
                    aspErrorMessage.Text    = "Данный e-mail уже используется";
                    return;
                }
                if (!LocalUser.IsIntranet)
                {
                    if (TextBoxGroup.Text.Trim() != String.Empty)
                    {
                        groupId = dataContext.GetGroupIdByCode(TextBoxGroup.Text.Trim());
                        if (groupId == 0)
                        {
                            aspErrorMessage.Visible = true;
                            aspErrorMessage.Text    = "Неверный код группы";
                            return;
                        }
                    }
                }
                TestorTreeItem[] groups = new TestorTreeItem[] { };
                if (groupId != 0)
                {
                    TestorTreeItem group = new TestorTreeItem(groupId, 0, String.Empty, TestorItemType.Group, new TestorTreeItem[] { });
                    groups = new TestorTreeItem[] { group };
                }
                string password = TextBoxPassword.Text.Trim();
                if (String.IsNullOrEmpty(password))
                {
                    password = "******";
                }
                TestorCoreUser user = new TestorCoreUser()
                {
                    LastName   = TextBoxLastName.Text.Trim(),
                    FirstName  = TextBoxName.Text.Trim(),
                    SecondName = TextBoxSecondName.Text.Trim(),
                    Password   = password,
                    Sex        = DropDownListGender.SelectedIndex == 0 ? true : false,
                    UserGroups = groups,
                    UserRole   = TestorUserRole.Student,
                    Status     = LocalUser.IsIntranet ? TestorUserStatus.LocalNetUser : TestorUserStatus.NotActivated,
                    StudNumber = TextBoxStudNumber.Text.Trim()
                };
                if (LocalUser.IsIntranet)
                {
                    user.Login       = Guid.NewGuid().ToString();
                    user.IsLocalUser = true;
                    user.Email       = String.Format("{0}@{1}.testor.ru", user.Login, Guid.NewGuid().ToString());
                }
                else
                {
                    user.Login = TextBoxLogin.Text.Trim();
                    user.Email = TextBoxEmail.Text.Trim().ToLower();
                }
                try
                {
                    TestorCoreUser coreUser = LocalUser.UserManagement.CreateUser(user);
                    ActivationKey  key      = new ActivationKey();
                    key.ActivationKey1 = Guid.NewGuid().ToString();
                    key.UserId         = coreUser.UserId;
                    dataContext.ActivationKeys.InsertOnSubmit(key);
                    if (LocalUser.IsIntranet)
                    {
                        dataContext.SubmitChanges();
                        FormsAuthentication.RedirectFromLoginPage(coreUser.Login, false);
                        return;
                    }
                    else
                    {
                        dataContext.SubmitChanges();
                        SendActivationMail(coreUser.Email, key.ActivationKey1, coreUser.Login);
                    }
                }
                catch (Exception ex)
                {
                    aspErrorMessage.Visible = true;
                    aspErrorMessage.Text    = ex.Message;
                    return;
                }
                MultiView1.ActiveViewIndex = 1;
            }
        }
Example #18
0
 public SelectSingleItemForm(TestorCoreUser user, TestingServerItemType itemType)
     : this(itemType)
 {
     _resultUser = user;
 }
Example #19
0
        private void buttonOK_Click(object sender, EventArgs e)
        {
            _lastName   = textBoxLastName.Text.Trim();
            _firstName  = textBoxFirstName.Text.Trim();
            _secondName = textBoxSecondName.Text.Trim();
            _birthday   = dateTimePickerBirthday.Value;
            _studNumber = textBoxStudNumber.Text.Trim();
            _password   = textBoxPassword1.Text;
            _password2  = textBoxPassword2.Text;
            _gender     = radioButtonMale.Checked;

            if (_password != String.Empty || _password2 != String.Empty)
            {
                if (_password != _password2)
                {
                    SystemMessage.ShowWarningMessage("Пароли не совпадают.");
                    textBoxPassword1.Text = String.Empty;
                    textBoxPassword2.Text = String.Empty;
                    return;
                }
            }
            else if (!_isAlterMode)
            {
                _password = "******";
            }

            labelStarLastName.Visible  = String.IsNullOrEmpty(_lastName);
            labelStarFirstName.Visible = String.IsNullOrEmpty(_firstName);
            if (_isOnlineMode && !_isAlterMode)
            {
                labelStarGroup.Visible = _selectedGroup == null;
            }
            labelNumber.Visible = String.IsNullOrEmpty(_studNumber);
            if (labelStarLastName.Visible || labelStarFirstName.Visible ||
                labelStarGroup.Visible || labelNumber.Visible)
            {
                SystemMessage.ShowWarningMessage("Для добавления пользователя заполните обязательные поля.");
            }
            else
            {
                if (_isOnlineMode)
                {
                    AddUser();
                }
                else
                {
                    _resultUser = new TestorCoreUser()
                    {
                        FirstName  = _firstName,
                        LastName   = _lastName,
                        SecondName = _secondName,
                        Sex        = _gender,
                        Status     = TestorUserStatus.LocalNetUser,
                        StudNumber = _studNumber,
                        UserRole   = TestorUserRole.Student,
                        Password   = _password
                    };
                    this.DialogResult = DialogResult.OK;
                }
            }
        }
Example #20
0
 public void AddUser(TestorCoreUser user)
 {
     _users.Add(user);
 }