public void DeleteUser(mycOLAPuser ouser) { Microsoft.AnalysisServices.RoleMember usr = new Microsoft.AnalysisServices.RoleMember(); usr.Name = ouser.Name; OlapRole.Members.Remove(usr); OlapRole.Update(); }
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("Пользователь удален."); } }
/// <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(); } }
private void dxListUserAll_MouseDoubleClick(object sender, MouseEventArgs e) { mycOLAPuser ouser = (mycOLAPuser)dxListUserAll.SelectedItem; MessageBox.Show(string.Format("SID={0};\nName={1};", ouser.SID, ouser.Name)); }