public void DeleteUser(mycOLAPuser ouser)
 {
     Microsoft.AnalysisServices.RoleMember usr = new Microsoft.AnalysisServices.RoleMember();
     usr.Name = ouser.Name;
     OlapRole.Members.Remove(usr);
     OlapRole.Update();
 }
예제 #2
0
        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();
            }
        }
예제 #4
0
        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));
        }