Friday, May 29, 2009

Can't select Jabber or Google Talk for iChat? Here's one reason.

I really felt like crying when I ran into this latest bit of Apple tragi-comedy.

I tried configuring iChat on my mother's managed account (protect the Dock from accidental deletions), but I couldn't use her Gmail credentials (Google Talk option). Jabber and Google Talk were grayed out.

Why?

Google tells us ..
Apple - Support - Discussions - Can't add jabber or google talk, ...
... Jabber [and Google Talk] and in Fact Bonjour over iChat are excluded in Leopard when Parental Controls are activated...
It doesn't matter that the Parental Controls have no restrictions on iChat or the web. If you enable parental controls, even if all you're doing is protecting the Dock from changes, then iChat can't use Google Talk.

Why not? Why this senseless, irrational, bit of blithering madness that's persisted, without documentation, through 7 point updates to 10.5.7?

Because Apple hates us.

There's a comparable mysterious "Gray out" in iTunes related to iPhone parental controls, but at least that makes a kind of sense.

I hate you too Apple.

Update 4/17/2010: An Apple Discussion post describes enabling Adium functionality even with Parental Controls:
http://*.*.live.com
https://*.*.live.com
http://messenger.live.com

By adding the above we were able to Adium to work while still having parental controls turned on.
See also: OS X Parental Controls: The https bug and our family Google Apps services.

5 comments:

Julian said...

With Parental Controls turned on and preventing iChat access to google and jabber accounts, log into an admin user account. Grab a copy of Property List Editor from the Developer install before you go any further.

You need to open (using Property List Editor, unless you're proficient with XML):

\private\var\db\dslocal\nodes\Default\users\usershortname.plist

(where usershortname is the shortname of the user whose iChat privileges you want to edit)

Open the Root -> mcx_settings -> 0 property, and copy and paste the entire field that begins "(xml" -- it'll be miles long, and you want to paste it into a text editor that won't mangle it (BareBones Software's TextWrangler is a good example).

Scroll down until you see the following entry (with appropriate time stamp from the last time you opened the Parental Controls settings, and you'll see greater and less than signs instead of curly braces):

(key)com.apple.iChatAgent(\key)
(dict)
(key)Forced(\key)
(array)
(dict)
(key)mcx_data_timestamp(\key)
(date)2009-09-23T00:45:15Z(\date)
(key)mcx_preference_settings(\key)
(dict)
(key)Setting.parentalControls(\key)
(true\)
(key)Setting.parentalControls.forceChatLogging(\key)
(true\)
(\dict)
(\dict)
(\array)
(\dict)

Change the boolean flag below "(key)Setting.parentalControls(\key)" from "(true\)" to "(false\)".

Do a Select All, copy and paste into the same Root -> mcx_settings -> 0 property, click on another field, then save your changes.

All the mcxsettings entries are defaults that can override any preferences files in the user's ~\Library\Preferences, and mucking around with this can make the account you're editing unusable, so be extra careful when you're copying-and-pasting and making changes.

...or you could just turn off Parental Controls...

John Gordon said...

Thanks Julian.

I'm impressed anyone figured this one out!

Khurt said...

Julian, I am about to try your solution. NOTE: Your backslashes are correct for Windows but not for OS X ( or any kind of *NIX).

vamsee said...

Julian,

Thanks much for figuring this out. I used vi on MacOS to edit that file and it works.

Anonymous said...

Thanks. I backed up the property file first, then edited in place with vi as well. No copying/pasting, just changing true to false. Also, I found that when through parental controls I turned on iChat controls to limit chat participants (my son's account), the value was reset and I had to update the property file again. Just inconvenient, so now I don't quite hate apple for this, I'm just irritated a lot.