private void popMenuDeleteUser_Click(object sender, EventArgs e) { //удалить пользователя mycOLAProle role = (mycOLAProle)dxListRoles.SelectedItem; mycOLAPuser ouser = (mycOLAPuser)dxListUsers.SelectedItem; Boolean bOK = false; DialogResult result = MessageBox.Show("Удаляем пользователя ?", "DialogBox", MessageBoxButtons.YesNo); switch (result) { case DialogResult.Yes: bOK = true; break; } if (bOK) { bOK = false; try { role.DeleteUser(ouser); bOK = true; } catch (Exception ex) { MessageBox.Show("Ошибка удаления пользователя !\n" + ex.Message); } } if (bOK) { ReloadListMembers(); MessageBox.Show("Пользователь удален."); } }
private void popMenuAddUser_Click(object sender, EventArgs e) { frmGetDomainUser frmAD = new frmGetDomainUser(); frmAD.ShowDialog(); if (frmAD.UserAD != null) { //добавить пользователя mycOLAProle role = (mycOLAProle)dxListRoles.SelectedItem; Microsoft.AnalysisServices.RoleMember usr = new Microsoft.AnalysisServices.RoleMember(); usr.Name = frmAD.UserAD.UserDomainLogin; try { role.AddUser(usr); ReloadListMembers(); MessageBox.Show("Пользователь добавлен."); } catch (Exception ex) { MessageBox.Show("Ошибка добавления пользователя !\n" + ex.Message); } } frmAD.Close(); }
int IComparable.CompareTo(object obj) { mycOLAProle tmp = (mycOLAProle)obj; if (tmp != null) { return(this.Name.CompareTo(tmp.Name)); } else { throw new ArgumentException("Ошибка при сравнении ролей в классе mycOLAProle"); } }
/// <summary> /// Для заданной роли получить всех пользователей /// Должно выполняться вместе в загрузкой всех ролей для БД /// </summary> /// <param name="dbRole"></param> private void LoadListUserFromRole(mycOLAPdb db, mycOLAProle dbRole, bool bForceLoad) { // получить всех юзеров для роли в кубе ОЛАП if (dbRole != null && (dbRole.listUser.Count == 0 || bForceLoad)) { List <mycOLAPuser> _lstUser = new List <mycOLAPuser>(); List <mycOLAProle> _lstRole = new List <mycOLAProle>(); foreach (Microsoft.AnalysisServices.RoleMember mmbr in dbRole.OlapRole.Members) { // проходим по списку юзеров в каждой роли // проверка полного списка пользователй // пользователь может быть в разных ролях - ищем повторы // если первый раз - добавить mmbr // если нет то добавить в вписок роли а для db не надо, т.к. есть mycOLAPuser usr = new mycOLAPuser(mmbr); //добавить текущего пользователя в список для этой роли if (dbRole.listUser.Find(u => (u.Name.ToUpper() == mmbr.Name.ToUpper())) == null) { dbRole.listUser.Add(usr); } ////Собрать полные списки ролей и пользователей //_lstUser.Add(usr); //_lstRole.Add(dbRole); // составить список пользователей для всего куба - каждый юзер входит 1 раз // Найти пользователя этого пользователя в списке по кубу mycOLAPuser usrSearch = db.listUsers.Find(u => (u.Name.ToUpper() == mmbr.Name.ToUpper())); if (usrSearch == null) { db.listUsers.Add(usr); } else { usr = usrSearch; } // составить список ролей для пользователя - 1 роли входит 1 раз //if (!usr.listRoles.Contains<mycOLAProle>(dbRole)) if (usr.listRoles.Find(x => (x.Name.ToUpper() == dbRole.Name.ToUpper())) == null) { usr.listRoles.Add(dbRole); } } //db.listUsers = _lstUser.Distinct<mycOLAPuser>().Select(a => a.Name).ToList<mycOLAPuser>(); // UserList = UserList.Distinct().Select(a => a.Name).ToList(); } }
/// <summary> /// Получить для базы список всех ролей /// </summary> /// <param name="dbName"></param> public void LoadListRoleUserFromDB(string dbName, bool bForceLoad) { // Загрузка ролей и пользователей происходит 1 раз через обращение к базе // второй раз используется уже загруженный список // bForceLoad - если требуется еще раз перезагрузить списки из базы //Проверка наличия, что база загружена _dbSelected = dbSelect(dbName); // получить все роли для базы и для каждой роли загрузить всех юзеров if (_dbSelected != null && (_dbSelected.listRole.Count == 0 || bForceLoad)) { _dbSelected.listRole = new List <mycOLAProle>(); foreach (Microsoft.AnalysisServices.Role dbRole in _dbSelected.DBolap.Roles) { mycOLAProle roleSelected = new mycOLAProle(); roleSelected.OlapRole = dbRole; roleSelected.DBname = _dbSelected.Name; _dbSelected.listRole.Add(roleSelected); // Загрузить юзеров для этой роли LoadListUserFromRole(_dbSelected, roleSelected, bForceLoad); } } }