User display name field

Added a "display name" field, which can be NULL. The field can be set
from the user creation form, and is displayed in the list.
This commit is contained in:
Emmanuel BENOîT 2012-02-06 08:36:01 +01:00
parent 1271afd1d8
commit b37265d0eb
4 changed files with 45 additions and 14 deletions

View file

@ -56,6 +56,7 @@ GRANT SELECT,INSERT,UPDATE,DELETE ON items TO :webapp_user;
CREATE TABLE users (
user_id INT NOT NULL DEFAULT NEXTVAL('users_user_id_seq'::TEXT),
user_email VARCHAR(256) NOT NULL,
user_display_name VARCHAR(256) ,
user_salt CHAR(8) NOT NULL,
user_iterations INT NOT NULL,
user_hash CHAR(40) NOT NULL,

View file

@ -2,14 +2,18 @@
-- Create a new user
--
CREATE OR REPLACE FUNCTION users_add( _email TEXT , _salt TEXT , _iters INT , _hash TEXT )
CREATE OR REPLACE FUNCTION users_add( _email TEXT , _salt TEXT , _iters INT , _hash TEXT , _name TEXT )
RETURNS INT
LANGUAGE PLPGSQL
STRICT VOLATILE SECURITY INVOKER
AS $users_add$
BEGIN
INSERT INTO users ( user_email , user_salt , user_iterations , user_hash )
VALUES ( _email , _salt , _iters , _hash );
IF _name = '' THEN
_name := NULL;
END IF;
INSERT INTO users ( user_email , user_salt , user_iterations , user_hash , user_display_name )
VALUES ( _email , _salt , _iters , _hash , _name );
RETURN 0;
EXCEPTION
WHEN unique_violation THEN
@ -17,5 +21,5 @@ EXCEPTION
END;
$users_add$;
REVOKE EXECUTE ON FUNCTION users_add( TEXT , TEXT , INT , TEXT ) FROM PUBLIC;
GRANT EXECUTE ON FUNCTION users_add( TEXT , TEXT , INT , TEXT) TO :webapp_user;
REVOKE EXECUTE ON FUNCTION users_add( TEXT , TEXT , INT , TEXT , TEXT ) FROM PUBLIC;
GRANT EXECUTE ON FUNCTION users_add( TEXT , TEXT , INT , TEXT , TEXT) TO :webapp_user;