Index: openacs-4/packages/acs-kernel/sql/oracle/acs-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/oracle/acs-create.sql,v diff -u -N -r1.6 -r1.7 --- openacs-4/packages/acs-kernel/sql/oracle/acs-create.sql 22 Aug 2003 13:54:14 -0000 1.6 +++ openacs-4/packages/acs-kernel/sql/oracle/acs-create.sql 22 Aug 2003 15:05:20 -0000 1.7 @@ -29,14 +29,14 @@ creation_date in acs_objects.creation_date%TYPE default sysdate, creation_user in acs_objects.creation_user%TYPE default null, creation_ip in acs_objects.creation_ip%TYPE default null, + authority_id in auth_authorities.authority_id%TYPE default null, + username in users.username%TYPE, email in parties.email%TYPE, url in parties.url%TYPE default null, first_names in persons.first_names%TYPE, last_name in persons.last_name%TYPE, password in users.password%TYPE, salt in users.salt%TYPE, - password_question in users.password_question%TYPE default null, - password_answer in users.password_answer%TYPE default null, screen_name in users.screen_name%TYPE default null, email_verified_p in users.email_verified_p%TYPE default 't', member_state in membership_rels.member_state%TYPE default 'approved' @@ -62,14 +62,14 @@ creation_date in acs_objects.creation_date%TYPE default sysdate, creation_user in acs_objects.creation_user%TYPE default null, creation_ip in acs_objects.creation_ip%TYPE default null, + authority_id in auth_authorities.authority_id%TYPE default null, + username in users.username%TYPE, email in parties.email%TYPE, url in parties.url%TYPE default null, first_names in persons.first_names%TYPE, last_name in persons.last_name%TYPE, password in users.password%TYPE, salt in users.salt%TYPE, - password_question in users.password_question%TYPE default null, - password_answer in users.password_answer%TYPE default null, screen_name in users.screen_name%TYPE default null, email_verified_p in users.email_verified_p%TYPE default 't', member_state in membership_rels.member_state%TYPE default 'approved' @@ -84,14 +84,14 @@ creation_date => creation_date, creation_user => creation_user, creation_ip => creation_ip, + authority_id => authority_id, + username => username, email => email, url => url, first_names => first_names, last_name => last_name, password => password, salt => salt, - password_question => password_question, - password_answer => password_answer, screen_name => screen_name, email_verified_p => email_verified_p ); Index: openacs-4/packages/acs-kernel/sql/oracle/community-core-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/oracle/community-core-create.sql,v diff -u -N -r1.6 -r1.7 --- openacs-4/packages/acs-kernel/sql/oracle/community-core-create.sql 22 Aug 2003 11:38:08 -0000 1.6 +++ openacs-4/packages/acs-kernel/sql/oracle/community-core-create.sql 22 Aug 2003 15:05:20 -0000 1.7 @@ -620,14 +620,14 @@ creation_user in acs_objects.creation_user%TYPE default null, creation_ip in acs_objects.creation_ip%TYPE default null, + authority_id in auth_authorities.authority_id%TYPE default null, + username in users.username%TYPE, email in parties.email%TYPE, url in parties.url%TYPE default null, first_names in persons.first_names%TYPE, last_name in persons.last_name%TYPE, password in users.password%TYPE, salt in users.salt%TYPE, - password_question in users.password_question%TYPE default null, - password_answer in users.password_answer%TYPE default null, screen_name in users.screen_name%TYPE default null, email_verified_p in users.email_verified_p%TYPE default 't', context_id in acs_objects.context_id%TYPE default null @@ -667,20 +667,21 @@ creation_user in acs_objects.creation_user%TYPE default null, creation_ip in acs_objects.creation_ip%TYPE default null, + authority_id in auth_authorities.authority_id%TYPE default null, + username in users.username%TYPE, email in parties.email%TYPE, url in parties.url%TYPE default null, first_names in persons.first_names%TYPE, last_name in persons.last_name%TYPE, password in users.password%TYPE, salt in users.salt%TYPE, - password_question in users.password_question%TYPE default null, - password_answer in users.password_answer%TYPE default null, screen_name in users.screen_name%TYPE default null, email_verified_p in users.email_verified_p%TYPE default 't', context_id in acs_objects.context_id%TYPE default null ) return users.user_id%TYPE is + v_authority_id auth_authorities.authority_id%TYPE; v_user_id users.user_id%TYPE; begin v_user_id := @@ -689,12 +690,20 @@ email, url, first_names, last_name, context_id); + -- default to local authority + if authority_id is null then + select authority_id + into v_authority_id + from auth_authorities + where short_name = 'local'; + else + v_authority_id := authority_id; + end if; + insert into users - (user_id, password, salt, password_question, password_answer, screen_name, - email_verified_p) + (user_id, authority_id, username, password, salt, screen_name, email_verified_p) values - (v_user_id, password, salt, password_question, password_answer, screen_name, - email_verified_p); + (v_user_id, v_authority_id, username, password, salt, screen_name, email_verified_p); insert into user_preferences (user_id) Index: openacs-4/packages/acs-kernel/sql/postgresql/acs-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/postgresql/acs-create.sql,v diff -u -N -r1.15 -r1.16 --- openacs-4/packages/acs-kernel/sql/postgresql/acs-create.sql 22 Aug 2003 13:54:14 -0000 1.15 +++ openacs-4/packages/acs-kernel/sql/postgresql/acs-create.sql 22 Aug 2003 15:05:20 -0000 1.16 @@ -20,40 +20,70 @@ objects like the site-wide organization, and the all users party. '; -create function acs__add_user (integer,varchar,timestamptz,integer,varchar,varchar,varchar,varchar,varchar,char,char,varchar,varchar,varchar,boolean,varchar) +create or replace function acs__add_user ( + integer, -- user_id + varchar, -- object_type + timestamptz, -- creation_date + integer, -- creation_user + varchar, -- cretion_ip + integer, -- authority_id; default 'local' + varchar, -- username + varchar, -- email + varchar, -- url + varchar, -- first_names + varchar, -- last_name + char, -- password + char, -- salt + varchar, -- screen_name + boolean, -- email_verified_p + varchar -- member_state +) returns integer as ' declare - user_id alias for $1; -- default null - object_type alias for $2; -- default ''user'' - creation_date alias for $3; -- default now() - creation_user alias for $4; -- default null - creation_ip alias for $5; -- default null - email alias for $6; - url alias for $7; -- default null - first_names alias for $8; - last_name alias for $9; - password alias for $10; - salt alias for $11; - password_question alias for $12; -- default null - password_answer alias for $13; -- default null - screen_name alias for $14; -- default null - email_verified_p alias for $15; -- default ''t'' - member_state alias for $16; -- default ''approved'' - v_user_id users.user_id%TYPE; - v_rel_id membership_rels.rel_id%TYPE; + p_user_id alias for $1; -- default null + p_object_type alias for $2; -- default ''user'' + p_creation_date alias for $3; -- default now() + p_creation_user alias for $4; -- default null + p_creation_ip alias for $5; -- default null + p_authority_id alias for $6; -- defaults to local authority + p_username alias for $7; -- + p_email alias for $8; + p_url alias for $9; -- default null + p_first_names alias for $10; + p_last_name alias for $11; + p_password alias for $12; + p_salt alias for $13; + p_screen_name alias for $14; -- default null + p_email_verified_p alias for $15; -- default ''t'' + p_member_state alias for $16; -- default ''approved'' + v_user_id users.user_id%TYPE; + v_rel_id membership_rels.rel_id%TYPE; begin - v_user_id := acs_user__new (user_id, object_type, creation_date, - creation_user, creation_ip, email, - url, first_names, last_name, password, - salt, password_question, password_answer, - screen_name, email_verified_p,null); + v_user_id := acs_user__new ( + p_user_id, + p_object_type, + p_creation_date, + p_creation_user, + p_creation_ip, + p_authority_id, + p_username, + p_email, + p_url, + p_first_names, + p_last_name, + p_password, + p_salt, + p_screen_name, + p_email_verified_p, + null -- context_id + ); v_rel_id := membership_rel__new ( null, ''membership_rel'', acs__magic_object_id(''registered_users''), v_user_id, - member_state, + p_member_state, null, null); Index: openacs-4/packages/acs-kernel/sql/postgresql/community-core-create.sql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-kernel/sql/postgresql/community-core-create.sql,v diff -u -N -r1.13 -r1.14 --- openacs-4/packages/acs-kernel/sql/postgresql/community-core-create.sql 22 Aug 2003 11:38:08 -0000 1.13 +++ openacs-4/packages/acs-kernel/sql/postgresql/community-core-create.sql 22 Aug 2003 15:05:20 -0000 1.14 @@ -637,60 +637,92 @@ -- create or replace package body acs_user -- function new -select define_function_args('user__new','user_id,object_type;user,creation_date;now(),creation_user,creation_ip,email,url,first_names,last_name,password,salt,password_question,password_answer,screen_name,email_verified_p;t,context_id'); +select define_function_args('user__new','user_id,object_type;user,creation_date;now(),creation_user,creation_ip,authority_id,username,email,url,first_names,last_name,password,salt,screen_name,email_verified_p;t,context_id'); -create function acs_user__new (integer,varchar,timestamptz,integer,varchar,varchar,varchar,varchar,varchar,char,char,varchar,varchar,varchar,boolean,integer) +create or replace function acs_user__new ( + integer, -- user_id + varchar, -- object_type + timestamptz, -- creation_date + integer, -- creation_user + varchar, -- creation_ip + integer, -- authority_id; default 'local' + varchar, -- username + varchar, -- email + varchar, -- url + varchar, -- first_names + varchar, -- last_name + char, -- password + char, -- salt + varchar, -- screen_name + boolean, -- email_verified_p + integer -- context_id +) returns integer as ' declare - new__user_id alias for $1; -- default null - new__object_type alias for $2; -- default ''user'' - new__creation_date alias for $3; -- default now() - new__creation_user alias for $4; -- default null - new__creation_ip alias for $5; -- default null - new__email alias for $6; - new__url alias for $7; -- default null - new__first_names alias for $8; - new__last_name alias for $9; - new__password alias for $10; - new__salt alias for $11; - new__password_question alias for $12; -- default null - new__password_answer alias for $13; -- default null - new__screen_name alias for $14; -- default null - new__email_verified_p alias for $15; -- default ''t'' - new__context_id alias for $16; -- default null - v_user_id users.user_id%TYPE; - person_exists varchar; + p_user_id alias for $1; -- default null + p_object_type alias for $2; -- default ''user'' + p_creation_date alias for $3; -- default now() + p_creation_user alias for $4; -- default null + p_creation_ip alias for $5; -- default null + p_authority_id alias for $6; -- defaults to local authority + p_username alias for $7; -- + p_email alias for $8; + p_url alias for $9; -- default null + p_first_names alias for $10; + p_last_name alias for $11; + p_password alias for $12; + p_salt alias for $13; + p_screen_name alias for $14; -- default null + p_email_verified_p alias for $15; -- default ''t'' + p_context_id alias for $16; -- default null + v_user_id users.user_id%TYPE; + v_authority_id auth_authorities.authority_id%TYPE; + v_person_exists varchar; begin - v_user_id := new__user_id; + v_user_id := p_user_id; - select case when count(*) = 0 then ''f'' else ''t'' end into person_exists - from persons where person_id = v_user_id; + select case when count(*) = 0 then ''f'' else ''t'' end into v_person_exists + from persons where person_id = v_user_id; - if person_exists = ''f'' then + if v_person_exists = ''f'' then + v_user_id := person__new( + v_user_id, + p_object_type, + p_creation_date, + p_creation_user, + p_creation_ip, + p_email, + p_url, + p_first_names, + p_last_name, + p_context_id + ); + else + update acs_objects set object_type = ''user'' where object_id = v_user_id; + end if; - v_user_id := - person__new(v_user_id, new__object_type, - new__creation_date, new__creation_user, new__creation_ip, - new__email, new__url, new__first_names, new__last_name, - new__context_id); - else - update acs_objects set object_type = ''user'' where object_id = v_user_id; - end if; + -- default to local authority + if p_authority_id is null then + select authority_id + into v_authority_id + from auth_authorities + where short_name = ''local''; + else + v_authority_id := p_authority_id; + end if; - insert into users - (user_id, password, salt, password_question, password_answer, screen_name, - email_verified_p) - values - (v_user_id, new__password, new__salt, new__password_question, - new__password_answer, new__screen_name, new__email_verified_p); - - insert into user_preferences - (user_id) + insert into users + (user_id, authority_id, username, password, salt, screen_name, email_verified_p) values - (v_user_id); + (v_user_id, v_authority_id, p_username, p_password, p_salt, p_screen_name, p_email_verified_p); - return v_user_id; + insert into user_preferences + (user_id) + values + (v_user_id); + + return v_user_id; end;' language 'plpgsql';