Add a function to assist with renaming users.

This commit is contained in:
Andrew McMillan 2008-01-19 12:26:39 +13:00
parent c61d3edac6
commit 113fb6a40f

View File

@ -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;