I've been banging my head against the wall (and sprained my ankle!) trying to figure this out. When users uncheck the "Personal Contact Form" in their user profile settings they unfortunately block ANY user (yes, even when they have the persmissions) to see their profile. There is an "access denied" error that comes up.

Here's what needs to be done: Well, the reason they unchecked that radio button was to not get EMAILS, so why can't users still see their profiles but have the contact via email icon removed? That would be perfect.

The two other solutions I thought of were this. Either force users to keep that radio button checked (like, so they don't even see the option in the first place), or allow users to see their profiles regardless (but then they could always email them!). You see the delemma right?

Well, my ankle is feeling better now.

Comments

michelle’s picture

Here's what needs to be done: Well, the reason they unchecked that radio button was to not get EMAILS, so why can't users still see their profiles but have the contact via email icon removed? That would be perfect.

That's what it does.

I haven't the foggiest idea why you would be getting access denied just because a person disabled their contact form. I've never heard of such a thing happening. I'll leave this active a while in case someone else runs into this and can provide some more insight.

Michelle

michelle’s picture

Project: Advanced Profile Kit » Chaos Tool Suite (ctools)
Category: feature » support

Sending this over to CTools for sdboyer to look at.

Michelle

michelle’s picture

Actually, I just thought of one other thing to try... Disable Author Pane. That's the module responsible for putting the little email icon on the page. If you disable AP and the problem goes away then I guess the problem is in there but damned if I know how it's connected. This is the AP code dealing with the contact link:

function contact_preprocess_author_pane(&$variables) {
  global $user;
  $account = $variables['account'];
  $account_id = $account->uid;

  if (($account->contact) && ($account_id != $user->uid) && ($user->uid != 0)) {
    $variables['contact_link'] = l(t('Email'). '<span></span>', "user/$account_id/contact", array('attributes' => array('class' => 'author-email-icon'), 'html' => TRUE));
  }
}

Michelle

jordanewert’s picture

Before you guys all end up going through and wrapping your heads around this I think I found the solution (well, kinda). The thing is, and I found this out from a completely separate incident, is that when a user CREATES an account but does NOT log into it (for whatever reasons, didn't activate it in their email or something), their account is created but because they haven't officially logged in their account comes up as restricted to other users. The best solution I came up with was just to allow users to activate an account without an email activation run-around. This way they log in immediately and their accounts are "officially" activated. Strange phenomenon indeed. I hope this helps.

michelle’s picture

Status: Active » Closed (works as designed)

Oh, that has nothing to do with unchecking the contact form. That's normal Drupal behavior. Unconfirmed accounts are not accessable to prevent spammers from using profiles to Spam.

Michelle