Sometimes there is a requirement to rename users in the Horde DB. eg: you move from a system with 'standard' users to one where virtual hosting is used. In such a situation the old user may be 'fred' and the new user may be 'fred@hisdomain.com'
The script below seems to work for the following apps:
YMMV and more apps will need more changes of course.
BACKUP YOUR DB BEFORE RUNNING ANYTHING LIKE THIS!
#!/bin/sh function horde_rename() { new=$2; old=$1 echo "Rename $old -> $new" mysql -u horde -ppassword horde << EOF update hermes_timeslices set employee_id = '$new' where employee_id = '$old'; update horde_datatree set user_uid = '$new' where user_uid = '$old'; update horde_datatree set datatree_name = '$new' where datatree_name = '$old' and user_uid = '$new'; update horde_datatree_attributes set attribute_value = '$new' where attribute_value = '$old' and attribute_key = 'who'; update horde_datatree_attributes set attribute_key= '$new' where attribute_key = '$old' and attribute_name = 'perm_users'; update horde_datatree_attributes set attribute_value = '$new' where attribute_value = '$old' and attribute_name = 'uid'; update horde_datatree_attributes set attribute_value = '$new' where attribute_value = '$old' and attribute_name = 'owner'; update horde_histories set history_who = '$new' where history_who = '$old'; update horde_prefs set pref_uid = '$new' where pref_uid = '$old'; update kronolith_events set event_creator_id = '$new' where event_creator_id = '$old'; update kronolith_events set calendar_id = '$new' where calendar_id = '$old'; update mnemo_memos set memo_owner = '$new' where memo_owner = '$old'; update nag_tasks set task_owner = '$new' where task_owner = '$old'; update turba_objects set owner_id = '$new' where owner_id = '$old'; update whups_tickets set user_id_requester = '$new' where user_id_requester = '$old'; update whups_queues_users set user_uid = '$new' where user_uid = '$old'; update whups_users_searches set user_uid = '$new' where user_uid = '$old'; EOF echo "Done with $new" } horde_rename 'fred' 'fred@hisdomain.com'
I did notice that notepads, tasks lists, calendars, etc. become 'hidden' after doing this. No data appears to be lost and users simply have to re-select the ones they want to see though.