Когато използваме field_permissions модула за задаване на индивидуални права за определени полета, страницата Permissions за задаване на права става огромна. Там се добавят и правата за всяко поле, създадено в сайта. Това разбира се не е чак такъв проблем при 20-50 полета, а при 250? По-големият проблем е, че при запазване някои от правата може и да не съхранят поради липса на памет на сървъра. За да реша този проблем, сметнах за ненужно правата за полета да са в тази страница, още повече, че много по-удобно те се задават в настройките на всяко поле.
Затова и ги махам от тази форма със следния код:
function mymodule_form_alter(&$form, &$form_state, $form_id) { global $user; // remove field_permissions fields from user_admin_permissions form // to reduce memory usage // field_permissions still have own permissions on field settings form if ($form_id == 'user_admin_permissions') { $perms = array_keys($form['permission']); foreach ($perms AS $perm) { if (strpos($perm, 'field_')) { unset($form['permission'][$perm]); foreach ($form['role_names']['#value'] AS $rid => $rname) { unset($form['checkboxes'][$rid]['#options'][$perm]); } } } } }
Това на практика не влияе на самите права за полетата.