По умолчанию Model Admin используется для управления моделью/s, и если модель пропущена, результатом является ошибка.Простая форма для Model Admin в Silverstripe
/* private static $managed_models = array(
'OneModel'
); */
Я хочу, чтобы отобразить простую форму (TextField для пароля и кнопка действия), а затем, если пароль правильный, он должен идти к в gridfield.
Я попытался изменить getCMSfields внутри модели, но поле отображается только если я нажимаю на одной из записей из gridfield:
public function getCMSfields(){
$fields = FieldList::create(TabSet::create('Root', $login = Tab::create('Authorise',
TextField::create('Password')
)));
return $fields;
}
Edit:
Этот вторичный пароль это ключ для дешифрования данных для этого объекта DataObject, не является регулярным входом в систему, поэтому это дополнительный метод защиты для хранения конфиденциальных данных.
Я предлагаю не иметь регистрационную форму внутри CMS. Я предлагаю использовать средства проверки подлинности Silverlight и полномочия для контроля, если пользователь может просмотреть этот раздел. Есть ли причина использовать дополнительную регистрационную форму внутри CMS, а не функций безопасности SilverStripe? – 3dgoo
Абсолютно! Если у пользователя есть разрешение на просмотр или редактирование определенного объекта DataObject, зачем ему снова войти в систему? Вы можете перезаписать методы can * canCreate(), canView(), canEdit() и canDelete() в вашей модели и использовать PermissionProvider для добавления глобальных разрешений для группы участников. См. Https://docs.silverstripe.org/en/3.3/developer_guides/model/permissions/ и https://docs.silverstripe.org/en/3.3/developer_guides/security/permissions/ – wmk
Я полностью согласен с вышеизложенным - разрешения должны решить, что пользователь может или не может видеть - я бы не создал логин в системе, у которой уже есть логин – Barry