Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: ASP.NET MVC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/2: Рейтинг темы: голосов - 2, средняя оценка - 5.00
Diman777
363 / 335 / 108
Регистрация: 12.02.2013
Сообщений: 653
1

Каждый админ видит и редактирует только свои записи

12.05.2014, 14:03. Просмотров 460. Ответов 6
Метки нет (Все метки)

Привет всем!

у админа есть поле со значением его компании
C#
1
2
3
4
5
6
class User
{
     public int ID;
     public string Name;
     public int CompanyID;
}
Сущность записей
C#
1
2
3
4
5
6
class Item
{
    public int ID;
    ......
    public int CompanyID;
}
Как сделать так, чтобы каждый админ видел и мог редактировать только те записи которые принадлежат его компании?

Использую для авторизации Asp.Net Identity и для работы с БД Entity Framework
Моё примитивное решение таково:
- в каждом контроллере вытаскиваю CompanyID юзера и через LINQ фильтрую только те записи которые == CompanyID.

Однако контроллеров много...
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2014, 14:03
Ответы с готовыми решениями:

Не редактирует записи в БД
Не редактируются записи в бд, не пойму в чём дело, то ли тут что ли action="edit.php?id=<?PHP echo...

Не редактирует записи в БД
Посмотрите, пожалуйста, код. Почему он не редактирует записи в БД? <? $db_host =...

Есть 2 ноута , на одном W8 на втором XP, но в сети каждый видит только себя
Помогите пож! есть 2 ноута , на одном W8 на втором XP, но в сети каждый видит только себя....

Видит ли админ ip клинетов?
Есть 3 компа, один получает интернет и раздаёт 2-ум другим по свичу!! Вопрос будет ли админ...

Создание чата, где админ видит, что набирает пользователь
Здравствуйте, друзья! Нужна ваша помощь. Может кто сталкивался или находил где-то способы создания...

6
iptables
94 / 87 / 18
Регистрация: 09.06.2012
Сообщений: 215
12.05.2014, 14:12 2
Решение верное, остальное плохая реализация на начальном этапе. Ибо никак иначе как вытаскивать только то, что надо с БД.
0
Diman777
363 / 335 / 108
Регистрация: 12.02.2013
Сообщений: 653
12.05.2014, 14:57  [ТС] 3
iptables, а что бы Вы сделали на начальном этапе?
0
iptables
94 / 87 / 18
Регистрация: 09.06.2012
Сообщений: 215
12.05.2014, 16:08 4
Репозиторй для работы с БД. Ну и всяка же было известно, что будут пользователи и им надо будет отдавать ИХ контент, на просмотр иль редактирование(администрирование своих записей). Базовый контроллер который бы мне возвращал ИД компании и ИД пользователя. Конечно все зависит от предоставленного ТЗ, мб его и не было. Да и в контроллере работать с БД не хорошая практика, всю работу с БД в отдельную ДЛЛ
По идее это ток рассуждения, прошу прощения если задел.
1
Diman777
363 / 335 / 108
Регистрация: 12.02.2013
Сообщений: 653
12.05.2014, 19:13  [ТС] 5
iptables, ну я всё это использую, репозиторий - 3 метода, Добавление/Редактирование, Удаление и Чтение. Проблема в том что репозиторий возвращает все данные, а не отфильтрованные.. думал просто добавить еще один метод типа GetCompanyById(), но смысла нет, это все равно что взять все и через LINQ в контроллере вытащить нужные... однако иных решений не знаю - придется выбрать один из имеющихся

Цитата Сообщение от iptables Посмотреть сообщение
Базовый контроллер
также имеется.. на данный момент в нем просто ссылки на репозиторий через внедрение зависимостей (Ninject) типа
C#
1
2
      [Inject]
      public ICompanyRepository Repository { get; set; }
Цитата Сообщение от iptables Посмотреть сообщение
Базовый контроллер который бы мне возвращал ИД компании и ИД пользователя
А вы так делали? Я просто сегодня пробовал, что-то не получилось. Когда создаю в производном контроллере - то все работает, а когда в базовом - то выбрасывает исключение.
0
iptables
94 / 87 / 18
Регистрация: 09.06.2012
Сообщений: 215
13.05.2014, 11:38 6
Цитата Сообщение от Diman777 Посмотреть сообщение
А вы так делали? Я просто сегодня пробовал, что-то не получилось. Когда создаю в производном контроллере - то все работает, а когда в базовом - то выбрасывает исключение.
Да, у меня работает. Что за ошибку выдает? И как базовый контроллер вы реализовали. У меня например базовый контроллер отдает объект города(вся инфа)
0
Diman777
363 / 335 / 108
Регистрация: 12.02.2013
Сообщений: 653
13.05.2014, 11:42  [ТС] 7
До этого создавал свойство и в конструкторе инициализировал таким образом
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    public class BaseController: Controller
    {
        [Inject]
        public IEmployeeRepository EmployeeRepository { get; set; }
 
        .................
 
        public int CompanyID { get; set; }
 
        public BaseController()
        { 
               var UserManager = new UserManager<ApplicationUser>
                    (new UserStore<ApplicationUser>(new ApplicationDbContext()));
 
              CompanyID = UserManager.FindById(User.Identity.GetUserId()).CompanyID;
        }
    }
Решил проблему написав обычное свойство без участия конструктора базового класса
C#
1
2
3
4
5
6
7
8
9
10
        public int DzoID 
        {
            get 
            {
                var UserManager = new UserManager<ApplicationUser>
                    (new UserStore<ApplicationUser>(new ApplicationDbContext()));
 
                return UserManager.FindById(User.Identity.GetUserId()).DzoID;
            }
        }
iptables, спасибо за участие
0
13.05.2014, 11:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2014, 11:42

Пользователь видит одну страницу а админ другую. Что случилось?
Приветствую! Я не знаю Bitrix, но т.*к. в среде обывателей и работодателей считается, что...

Документ Не Видит Свои Responses
Документ не видит в базе свои Resonses. Они есть, в поле $REF есть UNID этого документа, но он их...

Как вы поддерживаете каждый месяц свои позиции ?
Допустим вы в топе Яндекса, код сайта максимально вылизан и оптимизирован. Каждый месяц Вы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru