Перейти к содержимому


Права доступа на редактирование подчиненной таблицы

подчиненная таблица права доступа

Сообщений в теме: 36

#1 kingston

    Активный участник

  • Пользователи
  • PipPipPip
  • 51 сообщений

Отправлено 25 Март 2013 - 18:02

У меня так получается, что при просмотре записи в родительской таблице, всегда можно редактировать подчиненную с помощью редактирования "на лету" - прям в полях таблицы.
Например, у меня у договоров подчиненная таблица - счета. Так через быстрое редактирование получается изменить в счете что угодно, даже если в правах группы запрещено изменение счетов, но разрешен просмотр и добавление.
У меня что-то не так настроено или это баг?
Как закрыть это редактирование подчиненных таблиц "на лету"?! Можно ли с помощью прав доступа сделать только просмотр? Ато я всё уже внедрил, но чую скоро менеджеры наворотят...

Сообщение отредактировал kingston: 25 Март 2013 - 18:07


#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 25 Март 2013 - 18:20

Цитата

даже если в правах группы запрещено изменение счетов

Каким образом запрещали? Скриншот можете прикрепить?

#3 kingston

    Активный участник

  • Пользователи
  • PipPipPip
  • 51 сообщений

Отправлено 25 Март 2013 - 20:09

В вашей же демке:

"Ковровой бомбардировкой" запретил все изменения
Прикрепленное изображение: PravaDostupa.PNG

А потом полез в контрагента
Первая запись действительно не меняется. А вторая и следующие - велкам!
Прикрепленное изображение: PravaDostupa2.PNG

#4 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 26 Март 2013 - 09:42

В таблице "Работа с клиентом", которую вы привели в качестве примера, настроен расширенный доступ по полю Менеджер, и соответственно все права заданы там (в настройках поля). В первой записи у вас поле Менеджер пусто - права берутся из группы - прав на запись нет. Во второй записи Менеджер = Администратор = текущий пользователь -> права берутся из расширенного доступа - права на запись есть.

Прикрепленное изображение: rights.jpg

#5 kingston

    Активный участник

  • Пользователи
  • PipPipPip
  • 51 сообщений

Отправлено 26 Март 2013 - 09:45

Спасибо. А почему тогде первую строку не получается редактировать?

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 26 Март 2013 - 09:46

Просмотр сообщенияCbCoder (26 Март 2013 - 09:42) писал:

В первой записи у вас поле Менеджер пусто - права берутся из группы - прав на запись нет


#7 kingston

    Активный участник

  • Пользователи
  • PipPipPip
  • 51 сообщений

Отправлено 26 Март 2013 - 11:01

Можно ли вообще запретить редактирование подчиненной таблицы из материнской "на лету"?
Работают менеджеры, которые не всегда понимают на что нажимают, сами наверное представляете что натворят. Поэтому очень нужно.
Единственное что - при добавлении позиций счета, счета фактуры и т.д. эта штука необходима.
Может есть галочка в свойствах таблицы, которая определяет её интерактивное редактирование в материнской? Либо можно сломать какой-нибудь кусок яваскрипта чтобы случайно не меняли даты договоров и суммы?


Сейчас проблема такая:

Убираю права на редактирование всех полей таблицы Договор.
У меня Договор - подчиненная таблица Контрагента.

Тогда пользователь нажав на кнопку может создать строку в Договорах, но не может добавить содержание (например, "предмет договора" и т.д.).
Из родительской таблицы "Контрагенты" можно добавить договор с контентом, но в таблице отображаются не все поля, и это не удобно.

Если, например, открываю на редактирование поле "дата" в Договорах, то его можно легко редактировать как на странице данного договора, так и в табличном виде на странице Контрагента. Вот в табличном на странице контрагента хотелось бы запретить - высока вероятность случайного изменения или внесения ошибки. Особенно потому, что сохраняется автоматически при внесении любого изменения.

#8 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 26 Март 2013 - 11:44

Цитата

Можно ли вообще запретить редактирование подчиненной таблицы из материнской "на лету"?

Что вы вообще имеете ввиду под словом "на лету"?

#9 kingston

    Активный участник

  • Пользователи
  • PipPipPip
  • 51 сообщений

Отправлено 26 Март 2013 - 12:17

Прикрепленное изображение: PravaDostupa2.PNG

#10 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 26 Март 2013 - 12:37

А чем вас не устраивает отключение прав, описанное выше? Или под словом "на лету" имеется ввиду что запрещение должно быть только в режиме подчиненной записи, а в режиме обычного редактирования должно остаться?

#11 kingston

    Активный участник

  • Пользователи
  • PipPipPip
  • 51 сообщений

Отправлено 26 Март 2013 - 12:45

Да, именно так.
Редактирование в режиме подчиненной записи надо запретить.
А в режиме обычного редактирования возможность внести изменения должна остаться в соответствии с правами группы или расширенными правами.

#12 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 26 Март 2013 - 12:54

Тогда, боюсь, на данный момент это невозможно сделать. Так, чтобы один и тот же человек в одном месте имел права на редактирование, а в другом - нет, причем на ту же самую запись. Можно либо по группам/пользователям права разграничивать, либо по разным записям.

#13 kingston

    Активный участник

  • Пользователи
  • PipPipPip
  • 51 сообщений

Отправлено 26 Март 2013 - 13:00

Можно ли как-то внешне это запретить или сломать это редактирование? Изменить CSS или Javascript?
В CSS сделать display:none не вариант - Важно чтобы контент подчиненных таблиц был виден.
Подскажите где лучше копать, ведь код у вас с Zend... я с этой недели всю компанию перевел на "Кб", и вдруг это "вылезло" :( Нужно заткнуть как можно быстрее

#14 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 26 Март 2013 - 13:10

На форуме не обсуждаются варианты взлома программы, это все равно что на форуме Майкрософт обсуждать взлом Windows.

Можно сделать 2 таблицы, одна - для редактирования, другая - ее копия, чисто для просмотра. При добавлении записи в одну - копировать поля в другую. Пока вижу только такой вариант.

#15 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 26 Март 2013 - 13:17

Есть другой момент - а нужно ли вам действительно запрещать полностью быстрое редактирование в подтаблице? Какой в этом смысл, если тот же менеджер все равно сможет зайти в Договора через обычное редактирование и тоже "накосячить"? Может все таки надо просто запретить редактировать чужие записи, а на свои оставить? То что вы хотите - задача крайне странная. Права они и есть права - они либо есть, либо их нет. Не может быть чтобы левой рукой я мог яблоко взять, а правой - мне запретили, это нонсенс.

#16 kingston

    Активный участник

  • Пользователи
  • PipPipPip
  • 51 сообщений

Отправлено 26 Март 2013 - 13:34

Тут вопрос не в правах, а в легкости внесения изменений по неаккуратности или глупости. В 1С можно "провести" - зафиксировать документ, и с ним уже ничего не сделаешь. Так же не изменишь номер счета, не изменив остальные. А в "Кб" сейчас можно случайно ткнуть мышкой и нажать любую кнопку, чтобы поставить всё с ног на голову.
Например, случайно поставив лишнюю цифру в ячейке номера договора ("Ой, Вася, я думала тут цена, а это номер. Дура я. Как Вернуть обратно?"), уже никогда не будет известно, какой у договора был номер - отменить, уйти со страницы не сохраняя - уже нельзя.
Скажем так, не чувствуется момент сохранения, при безвозвратности изменений..

Сообщение отредактировал kingston: 26 Март 2013 - 13:38


#17 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 26 Март 2013 - 13:44

Этот "момент" уже учтен нами - в следующих версиях можно будет откатывать изменения в подчиненных записях. Вернее, запись не будет окончательно сохраняться без явного нажатия на кнопку Сохранить.

Что же касается проводки "а-ля 1С" - это можно сделать и в нашей программе, используя те же расширенные права. Может вам именно это и нужно? Скажем, редактирование включается/выключается при изменении специального поля.

#18 kingston

    Активный участник

  • Пользователи
  • PipPipPip
  • 51 сообщений

Отправлено 26 Март 2013 - 14:11

Просмотр сообщенияCbCoder (26 Март 2013 - 13:44) писал:

Этот "момент" уже учтен нами - в следующих версиях можно будет откатывать изменения в подчиненных записях. Вернее, запись не будет окончательно сохраняться без явного нажатия на кнопку Сохранить.
Отлично. Еще бы подтверждение вот такое прикрутить!

Просмотр сообщенияCbCoder (26 Март 2013 - 13:44) писал:

Что же касается проводки "а-ля 1С" - это можно сделать и в нашей программе, используя те же расширенные права. Может вам именно это и нужно? Скажем, редактирование включается/выключается при изменении специального поля.
Где об этом почитать?

#19 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 759 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 26 Март 2013 - 14:31

Просмотр сообщенияkingston (26 Март 2013 - 14:11) писал:

Где об этом почитать?

Просмотр сообщенияCbCoder (26 Март 2013 - 09:42) писал:



#20 kingston

    Активный участник

  • Пользователи
  • PipPipPip
  • 51 сообщений

Отправлено 27 Март 2013 - 15:53

Убрал подчиненные таблицы, сделал доп. действие "Счета контрагента"
echo "<script>location.href='".$config["site_root"]."/fields.php?table=78&rel_search&rel_table=42&rel_line=".$ID."&rel_field=849&back_url=".$base64_current_url."'</script>";
Искать-ищет, но при входе в список счетов каждый раз приходится сбрасывать условие поиска :angry:
Хочу сделать, чтобы счета контрагента искались единоразово при нажатии на эту кнопку доп. действия. Как реализовать?

UPDATE
Сделайте галочку в настройках - держать условия поиска или нет, сейчас стал серьезно пользоваться Кб - это ахтунг работать с сохранением поиска!

Сообщение отредактировал kingston: 27 Март 2013 - 16:40






Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных