[turba] Restrincting to a shared read-only address book

Jan Schneider jan at horde.org
Thu May 17 08:56:29 UTC 2007


Zitat von Michael Rubinsky <mike at theupstairsroom.com>:

> Quoting Jan Schneider <jan at horde.org>:
>
>> Zitat von Michael Rubinsky <mike at theupstairsroom.com>:
>>
>>> Quoting Luigi Iotti <horde at iotti.biz>:
>>>
>>>> Hi all
>>>>
>>>> I'm new to the list. I'm preparing a locked-in IMP-4.1.3 + Turba-2.1.2
>>>> environment. All the prefs are locked by default.
>>>> I'd like to have only one address book, which should be shared  
>>>> and  read-only
>>>> for all the users, except for an "admin" user who can update the address
>>>> book. I obtained almost everything I wanted: I created the admin user,
>>>> created the localsql address book, shared it in the admin user,   
>>>> applied only
>>>> show and read permissions for others.
>>>> My users see the address book and are able to use it. They can  
>>>> use  only this
>>>> address book since I set both the addressbooks and default_dir prefs to
>>>> localsql:admin.
>>>> The only thing I can't get rid of is the "My Address Book" button  
>>>>  on the top
>>>> left of the Turba menu bar and, if I click on it, I am presented with the
>>>> options to create a new address book or modify the user's existing one.
>>>> These options are not usable at all, since the user only sees the admin's
>>>> address book, but their presence is annoying.
>>>> On the other hand, having a look at the code it seems that this button is
>>>> showed because the localsql source is configured with use_shares  
>>>> = true . I
>>>> can't change this since admin needs it to be able to share the   
>>>> address book.
>>>>
>>>> The only way I found to get rid of the button was to comment out the
>>>> following lines from lib/Turba.php :
>>>> if ($GLOBALS['haveShare']) {
>>>>  $menu->add(Horde::applicationUrl('addressbooks.php'), _("_My Address
>>>> Books"), 'turba.png');
>>>> }
>>>>
>>>> But I don't like to mess with the code. Is there a way to have only the
>>>> admin user to own an address book, or to map the use_shares attribute on a
>>>> per-user basis, or some other trick to make that button disappear?
>>>> Or maybe, a new pref could be introduced to force $GLOBALS['haveShare'] to
>>>> be false even if the source has use_shares = true ?
>>>
>>> Not currently. In fact, setting $GLOBALS['haveShare'] to false would
>>> prevent any of your shared sources from loading as that is what
>>> flags  base.php to load all the shares available to the user.
>>> Commenting out  the menu is currently the only way I can think of to
>>> have the  functionalitly of shares, without showing the My
>>> AddressBook page.  Of  course, this won't prevent users from
>>> navigating there directly,  although there is nothing they can
>>> really do once there.
>>>
>>> I suppose an argument could be made for adding either a
>>> configuration  option or maybe a new permission to Turba that could
>>> toggle the  availability of the My Addressbook page?
>>
>> This is not quite sure. You can still create non-share address book
>> and set permissions through the global (aka admin) permissions
>> interface.
>
> Sorry, I thought with use_shares => false that sql sources would act  
>  as private address books, giving PERMS_READ to a sql source would   
> allow that user to see that source, but only those contacts that  
> have  that user as owner would be shown.  I thought this feature was  
> removed  along with the 'public' attribute?
>
> How do you get all contacts to appear regardless of owner while not   
> using shares?  Am I missing some other attribute?

Yes, don't use the owner attribute.

Jan.

-- 
Do you need professional PHP or Horde consulting?
http://horde.org/consulting/



More information about the turba mailing list