}
/**
- * Implement hook_user_form().
+ * Implements hook_form_alter().
*/
-function pm_email_notify_user_form(&$edit, &$account, $category = NULL) {
- if ($category == 'account') {
+function privatemsg_form_alter(&$form, &$form_state, $form_id) {
+ // We have to use user_acces() because privatemsg_user_access() would
+ // return FALSE when privatemsg is disabled.
+ if (($form_id == 'user_register_form' || $form_id == 'user_profile_form') && $form['#user_category'] == 'account' && privatemsg_user_access('read privatemsg')) {
$form['enable_pm_mail'] = array(
'#type' => 'fieldset',
'#title' => t('Privatemsg e-mail notification'),
'#title' => t('Receive email notification for incoming private messages'),
'#default_value' => _pm_email_notify_is_enabled($account->uid),
);
- return $form;
}
}
* Implement hook_user_form().
*/
function pm_email_notify_user_submit(&$edit, &$account, $category = NULL) {
- if ($category == 'account') {
+ if ($category == 'account' && privatemsg_user_access('read privatemsg')) {
db_merge('pm_email_notify')
->fields(array('email_notify_is_enabled' => $edit['pm_send_notifications']))
->key(array('user_id' => $account->uid))
* Implements hook_form_alter().
*/
function privatemsg_form_alter(&$form, &$form_state, $form_id) {
- if (($form_id == 'user_register_form' || $form_id == 'user_profile_form') && $form['#user_category'] == 'account') {
+ // We have to use user_acces() because privatemsg_user_access() would
+ // return FALSE when privatemsg is disabled.
+ if (($form_id == 'user_register_form' || $form_id == 'user_profile_form') && $form['#user_category'] == 'account' && user_access('write privatemsg')) {
$form['privatemsg'] = array(
'#type' => 'fieldset',
'#title' => t('Privatemsg settings'),
* Implements hook_user_insert().
*/
function privatemsg_user_update(&$edit, $account, $category) {
- if ($category == 'account' && isset($edit['pm_enable'])) {
+ if ($category == 'account' && isset($edit['pm_enable']) && user_access('write privatemsg')) {
$current = privatemsg_is_disabled($account);
$disabled = (!$edit['pm_enable']);
$edit['pm_enable'] = NULL;