From 113fb6a40fa17333d232ec9d6cba621da9c20699 Mon Sep 17 00:00:00 2001 From: Andrew McMillan Date: Sat, 19 Jan 2008 12:26:39 +1300 Subject: [PATCH] Add a function to assist with renaming users. --- dba/caldav_functions.sql | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/dba/caldav_functions.sql b/dba/caldav_functions.sql index cdbddde6..877d360b 100644 --- a/dba/caldav_functions.sql +++ b/dba/caldav_functions.sql @@ -339,3 +339,28 @@ BEGIN RETURN rlist; END; ' LANGUAGE 'plpgsql'; + + +CREATE or REPLACE FUNCTION rename_davical_user( TEXT, TEXT ) RETURNS TEXT AS $$ +DECLARE + oldname ALIAS FOR $1; + newname ALIAS FOR $2; + oldpath TEXT; + newpath TEXT; +BEGIN + UPDATE usr SET username = newname WHERE username = oldname; + oldpath := '/' || oldname | '/'; + newpath := '/' || newname | '/'; + + UPDATE collection + SET parent_container = replace( parent_container, oldpath, newpath), + dav_name = replace( dav_name, oldpath, newpath) + WHERE substring(dav_name from 1 for char_length(oldpath)) = oldpath; + + UPDATE caldav_data + SET dav_name = replace( dav_name, oldpath, newpath) + WHERE substring(dav_name from 1 for char_length(oldpath)) = oldpath; + + RETURN newname; +END; +$$ LANGUAGE plpgsql;