allowing public access on a per-user basis

Hi all,
I am wondering what the best solution is for allowing each user to choose whether a particular
attribute (i.e. telephoneNumber) is visible to others.
What we've thought of so far is mirroring the attribute (i.e. hiddenTelephoneNumber) and allowing
telephoneNumber to contain the contents of hiddenTelephoneNumber if and only if the user consents
(perhaps by use of a third attribute makeTelephoneNumberPublic). This seems a bit unwieldy though,
is there a more elegant way to accomplish this?
thank you very much in advance,
~c