-- -- Upgrade script for version 4.6.3 to 4.6.4 -- -- Adds password expiration -- -- @author Lars Pind (lars@collaboraid.biz) -- @creation-date 2003-05-28 -- @cvs-id $Id: upgrade-4.6.3-4.6.4.sql,v 1.3 2004/05/17 15:14:47 jeffd Exp $ -- -- add the column alter table users add password_changed_date timestamptz ; alter table users alter column password_changed_date set default now(); -- looks like you cannot add a not null constraint to PG --alter table users add constraint users_pwd_chg_date_nn (password_changed_date not null); -- set default value to today update users set password_changed_date = current_timestamp; -- recreate the registered_users view drop view registered_users CASCADE; create view registered_users as select p.email, p.url, pe.first_names, pe.last_name, u.*, mr.member_state from parties p, persons pe, users u, group_member_map m, membership_rels mr, acs_magic_objects amo where party_id = person_id and person_id = user_id and u.user_id = m.member_id and m.rel_id = mr.rel_id and amo.name = 'registered_users' and m.group_id = amo.object_id and mr.member_state = 'approved' and u.email_verified_p = 't'; create view registered_users_of_package_id as SELECT u.*, au.package_id FROM application_users au, registered_users u WHERE (au.user_id = u.user_id); -- recreate the cc_users view drop view cc_users CASCADE; create view cc_users as select o.*, pa.*, pe.*, u.*, mr.member_state, mr.rel_id from acs_objects o, parties pa, persons pe, users u, group_member_map m, membership_rels mr, acs_magic_objects amo where o.object_id = pa.party_id and pa.party_id = pe.person_id and pe.person_id = u.user_id and u.user_id = m.member_id and amo.name = 'registered_users' and m.group_id = amo.object_id and m.rel_id = mr.rel_id and m.container_id = m.group_id; create view cc_users_of_package_id as SELECT u.*, au.package_id FROM application_users au, cc_users u WHERE (au.user_id = u.user_id); -- Fixing a really lame = null bug in this proc that would cause default values -- of new parameters to not be propagated to package instances create or replace function apm__register_parameter (integer,varchar,varchar,varchar,varchar,varchar,varchar,integer,integer) returns integer as ' declare register_parameter__parameter_id alias for $1; -- default null register_parameter__package_key alias for $2; register_parameter__parameter_name alias for $3; register_parameter__description alias for $4; -- default null register_parameter__datatype alias for $5; -- default ''string'' register_parameter__default_value alias for $6; -- default null register_parameter__section_name alias for $7; -- default null register_parameter__min_n_values alias for $8; -- default 1 register_parameter__max_n_values alias for $9; -- default 1 v_parameter_id apm_parameters.parameter_id%TYPE; cur_val record; begin -- Create the new parameter. v_parameter_id := acs_object__new( register_parameter__parameter_id, ''apm_parameter'', now(), null, null, null ); insert into apm_parameters (parameter_id, parameter_name, description, package_key, datatype, default_value, section_name, min_n_values, max_n_values) values (v_parameter_id, register_parameter__parameter_name, register_parameter__description, register_parameter__package_key, register_parameter__datatype, register_parameter__default_value, register_parameter__section_name, register_parameter__min_n_values, register_parameter__max_n_values); -- Propagate parameter to new instances. for cur_val in select ap.package_id, p.parameter_id, p.default_value from apm_parameters p left outer join apm_parameter_values v using (parameter_id), apm_packages ap where p.package_key = ap.package_key and v.attr_value is null and p.package_key = register_parameter__package_key loop PERFORM apm__set_value( cur_val.parameter_id, cur_val.package_id, cur_val.default_value ); end loop; return v_parameter_id; end;' language 'plpgsql';