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


Запрет на редактирование определенных записей

запретить редактирование записи

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

#1 YaRosh

    Участник

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

Отправлено 31 Март 2012 - 19:46

Добрый день.

Не могу решить вопрос запрета редактирования определенных записей.

1) Например есть таблица в которой записи добавленные разными сотрудниками. Нужно запретить сотрудниками редактировать чужие записи.
2) Например есть таблица со множеством записей. Нужно запретить редактировать записи имеющие статус "готово".
3) Например есть таблица со множеством записей. Нужно запретить редактировать записи имеющие статус "готово", только определенной группе пользователей, обладающих определенным свойством в таблице Наши сотрудники.

Как такое можно реализовать? Если не возможно, когда планируется данный функционал?

Сообщение отредактировал YaRosh: 31 Март 2012 - 21:37


#2 Гость_Roman_*

  • Гости

Отправлено 31 Март 2012 - 20:34

Здравствуйте! Реализовать данный вопрос можно с помощью механизма расширенных прав. В настройках поля типа "Пользователь" или "Группа" есть дополнительная настройка "Использовать права доступа". В документации более подробно описан данный функционал. http://clientbase.ru...xtended_access/
Запрет редактирования при смене какого-либо поля можно реализовать, написав вычисление, которое бы изменяло пользователя или группу в поле, в котором выставлены расширенные права.

#3 YaRosh

    Участник

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

Отправлено 31 Март 2012 - 23:07

Просмотр сообщенияRoman (31 Март 2012 - 20:34) писал:

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

#4 Гость_Roman_*

  • Гости

Отправлено 02 Апрель 2012 - 09:26

Просмотр сообщенияYaRosh (31 Март 2012 - 19:46) писал:

2) Например есть таблица со множеством записей. Нужно запретить редактировать записи имеющие статус "готово".

Можно написать вычисление, которое сработает при статусе "Готово" и поменяет пользователя в соответсвующем поле, например, на администратора. Права на запись при этом тоже поменяются и редактировать запись пользователям, которые не являются администраторами, будет невозможно.

#5 YaRosh

    Участник

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

Отправлено 02 Апрель 2012 - 11:57

Просмотр сообщенияRoman (02 Апрель 2012 - 09:26) писал:

Можно написать вычисление, которое сработает при статусе "Готово" и поменяет пользователя в соответсвующем поле, например, на администратора. Права на запись при этом тоже поменяются и редактировать запись пользователям, которые не являются администраторами, будет невозможно.
Я добавляю в таблицу, поле с типом группа. В этом элементе задаю, что все группы имеют право только чтения. Когда захожу под обычным пользователем в просмотр записей, показываются все, могу их просмотреть. А при нажатии Редактировать отображаются все поля для редактирования, хотя указал для всех полей Только Чтение

#6 Гость_Roman_*

  • Гости

Отправлено 02 Апрель 2012 - 15:30

Просмотр сообщенияYaRosh (02 Апрель 2012 - 11:57) писал:

Я добавляю в таблицу, поле с типом группа. В этом элементе задаю, что все группы имеют право только чтения. Когда захожу под обычным пользователем в просмотр записей, показываются все, могу их просмотреть. А при нажатии Редактировать отображаются все поля для редактирования, хотя указал для всех полей Только Чтение
В настройках групп доступа следует выставить расширенные права с запретом на запись полей.
В настройках самого поля права на запись разрешить. Тогда редактирование записи будет доступно только группе, указанной в этом поле.

#7 smart

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

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 04 Апрель 2012 - 09:24

Уважаемые разработчики, можно ли сделать в настройках доступа - чекбокс "редактирование". Если там галочки не будет, то это значит, что добавить информацию в это поле можно, а вот изменить уже нет.

А то столько приходится наворачивать, чтобы пару полей закрыть от редактирования...

или может еще как сделать - более простой способ ...

#8 Гость_Roman_*

  • Гости

Отправлено 04 Апрель 2012 - 09:35

Просмотр сообщенияsmart (04 Апрель 2012 - 09:24) писал:

Уважаемые разработчики, можно ли сделать в настройках доступа - чекбокс "редактирование". Если там галочки не будет, то это значит, что добавить информацию в это поле можно, а вот изменить уже нет.

А то столько приходится наворачивать, чтобы пару полей закрыть от редактирования...

или может еще как сделать - более простой способ ...

Если я правильно понял, то на данный момент именно так и реализовано. В настройках доступа есть отдельная галочка "Редактирование" и отдельная галочка "Добавление".

#9 smart

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

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 04 Апрель 2012 - 11:04

там по другому - если убрать галочку РЕДАКТИРОВАНИЕ и оставить ДОБАВЛЕНИЕ ... то это действует только при создании строки. А если например вы строку создали, но поле сразу не заполнили (оставили пустым), то потом вы не сможет в него ничего вписать.

а нужно, чтобы ОДИН раз можно было вписать. Но только один раз

#10 Гость_Roman_*

  • Гости

Отправлено 04 Апрель 2012 - 11:29

Теперь всё понятно. Возможно, в настройках поля такой функционал и появится.

#11 smart

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

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 04 Апрель 2012 - 17:17

Роман, если вы это сделаете ... то Вы столько проблем нам уберете. И нам и другим пользователям ... не надо будет вычислений делать, мучать вас вопросами. поставил галочку и все ...

А когда можно ожидать эту чудодейственную функцию.

#12 Гость_Roman_*

  • Гости

Отправлено 04 Апрель 2012 - 19:36

К сожалению, пока не могу назвать конкретных сроков реализации. О реализации данного функционала будет сообщено дополнительно.

#13 smart

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

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 19 Июль 2012 - 10:57

Роман, как у Вас дела. Продвинулись ли Вы за 3,5 месяца - по этому вопросу?

#14 Гость_Roman_*

  • Гости

Отправлено 19 Июль 2012 - 11:07

Данный вопрос стоит в очереди. На данный момент решаются более приоритетные моменты.

#15 Analitic

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

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 19 Июль 2012 - 13:05

То что вы хотите, можно реализовать через вычисления одной строкой.
Условие вычисления: Cохранение в таблице
if ($event['changed']['11']['old']!='' && $event['changed']['11']['old']!=$event['changed']['11']['new']) $line['Организация']=$event['changed']['11']['old'];
где 11 - id поля организация.
Таким образом заполненное поле редактировать будет можно, но оно не будет сохраняться. Если хотите, можно предупреждение пользователю добавить.

#16 Дмитрий ЕСП

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

  • Пользователи
  • PipPipPip
  • 78 сообщений
  • Пол:Мужчина

Отправлено 20 Сентябрь 2012 - 18:13

Подскажите, пожалуйста
Вычисление или JS запрещающий вносить изменения (редактировать) поле, т.е. содержание поля не может изменяется пользователем при редактировании, а может изменяется только при вычислениях.

Сообщение отредактировал Дмитрий ЕСП: 20 Сентябрь 2012 - 18:20


#17 Гость_Roman_*

  • Гости

Отправлено 21 Сентябрь 2012 - 08:58

Думаю, можно просто обойтись настройками групп доступа. Убираете галочки на редактирование и добавление, после этого поле будет нельзя отредактировать.

#18 smart

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

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 16 Октябрь 2012 - 22:16

Analitic - Вы ГЕНИЙ ...:)

#19 smart

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

  • Пользователи
  • PipPipPip
  • 297 сообщений
  • Пол:Мужчина
  • Интересы:v1980.8@gmail.com

Отправлено 17 Октябрь 2012 - 00:18

а как запретить менять поле "а", если поле "б" не пустое? (ну или как возвращать в поле "а" прошлое значение, если Б не пустое?

такой код не работает

if($line['б'] !="") {
$line['а']=$event['changed']['2399']['old'];
}

#20 Analitic

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

  • Пользователи
  • PipPipPip
  • 700 сообщений
  • Пол:Мужчина

Отправлено 17 Октябрь 2012 - 08:09

Просмотр сообщенияsmart (17 Октябрь 2012 - 00:18) писал:

if($line['б'] !="") {
$line['а']=$event['changed']['2399']['old'];
}
Вычисление принципе корректно. $line['б'] - не поле связи? Поля связи разворачиваются в вычислениях, и необходимо использовать 'raw'.





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

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