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


Контроль прав на редактирование


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

#1 kg0

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

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

Отправлено 06 Октябрь 2011 - 20:51

Добрый день,

Возможно ли это сделать стандартными средствами:


Есть две группы пользователей.
Первая группа должна иметь права на создание и изменение записей.
Вторая группа должна иметь права на чтение и __однократное__ изменение некоторых полей записи.

Т.е. суть задачи в том, чтобы оператор после первого изменения записи (созданием записи он не занимается) и ее сохранения не мог повторно что-то в ней подправить.



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

#2 CbCoder

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

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

Отправлено 07 Октябрь 2011 - 08:54

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

#3 kg0

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

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

Отправлено 07 Октябрь 2011 - 10:12

Спасибо.

Подскажите, пожалуйста, где можно посмотреть примеры php кода для манипулирования полями с типом "пользователь множ. выбор" (добавление пользователя, вычитание пользователя, проверка на вхождение пользователя) и пример кода на принадлежность пользователя к определенной группе доступа ?



Просмотр сообщенияРазработчик (7.10.2011, 8:54) писал:

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


#4 CbCoder

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

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

Отправлено 07 Октябрь 2011 - 13:11

В документации таких примеров нет. В принципе там и не нужна особая документация, достаточно информации о том, что данные поля хранятся в базе в виде "-1-2-3-", где цифры - id выбранных пльзователей. Все остальное реализуется через стандартные функции php.

#5 kg0

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

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

Отправлено 07 Октябрь 2011 - 13:52

Спасибо. С этим все понятно.

Может быть Вы рассмотрите возможность включить в версию 1.9.5 возможность управлять порядком исполнения кода "вычисления в таблицах", которые срабатывают при нажатии кнопки "Сохранить", чтобы можно было выбрать момент исполнения кода:

Вариант А: до сохранения изменений в базу данных.

Вариант Б (как работает сейчас): после сохранения изменений в БД.

#6 Analitic

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

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

Отправлено 07 Октябрь 2011 - 17:21

Пока вариант B не планируется, но в 1.9.5 вы в вычислениях можете установить обратно старое значение в базу.

#7 kg0

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

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

Отправлено 11 Октябрь 2011 - 18:37

Цитата

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

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

Прошу Вас реализовать в ближайшей версии возможность восстановить (или не сохранять изменения) и управлять этим через "вычисления в таблицах"
(например, добавить анализ кода возврата "вычислений в таблицах", если return 1 - то сохранить изменения, если return 0 - то не сохранять)

#8 CbCoder

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

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

Отправлено 12 Октябрь 2011 - 08:48

Просмотр сообщенияkg0 (11.10.2011, 19:37) писал:

Прошу Вас реализовать в ближайшей версии возможность восстановить (или не сохранять изменения) и управлять этим через "вычисления в таблицах"
(например, добавить анализ кода возврата "вычислений в таблицах", если return 1 - то сохранить изменения, если return 0 - то не сохранять)
Если речь идет об отмене операции сохранения, то это уже реализовано в 1.9.5. Там вообще существенно изменена модель вычислений.

#9 kg0

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

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

Отправлено 13 Октябрь 2011 - 20:26

Просмотр сообщенияРазработчик (12.10.2011, 8:48) писал:

Если речь идет об отмене операции сохранения, то это уже реализовано в 1.9.5. Там вообще существенно изменена модель вычислений.

Подскажите, а когда примерно версия 1.9.5 будет доступна для скачивания и где можно прочитать про новую модель вычислений ?

#10 CbCoder

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

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

Отправлено 14 Октябрь 2011 - 09:19

Сегодня или в понедельник выложим. Почитать можно будет после выхода версии, когда будет готова документация по новым функциям.

#11 kg0

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

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

Отправлено 21 Октябрь 2011 - 09:06

Добрый день,

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

Нашел в настройках вычислений условия: при сохранении в таблице, при изменении поля.

Но все равно непонятно, как же можно сделать "отказ от сохранения" ???

#12 Analitic

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

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

Отправлено 21 Октябрь 2011 - 13:20

Вы не можете сделать отказ от сохранение, но вы можете вернуть старые занчения назад.
Например:
$line['f444']=$event['changed'][444]['old'];

#13 kg0

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

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

Отправлено 21 Октябрь 2011 - 14:27

Просмотр сообщенияAnalitic (21.10.2011, 13:20) писал:

$line['f444']=$event['changed'][444]['old'];


а это какая-то новая языковая конструкция в версии 1.9.5

$line - предопределенное имя переменной?
f444 - это имя поля в БД
444 - это тоже имя поля только без f ?

#14 Timur

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

  • Техподдержка ООО "КБ"
  • PipPipPip
  • 854 сообщений
  • Пол:Мужчина

Отправлено 21 Октябрь 2011 - 16:06

Просмотр сообщенияkg0 (21.10.2011, 15:27) писал:

а это какая-то новая языковая конструкция в версии 1.9.5

$line - предопределенное имя переменной?
f444 - это имя поля в БД
444 - это тоже имя поля только без f ?
$line - предопределенное имя переменной!
f444 - это имя поля в БД (состоит из префикса и ID)
444 - это ID поля





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

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