ALTER TABLE users ADD COLUMN IF NOT EXISTS password_hash_algorithm
character varying(100) DEFAULT 'salted-sha1' NOT NULL;
--
-- String length of "pbkdf2-hmac-sha2" is 64 bytes. If scrypt or
-- pbkdf2_hmac with sha3-512 would be used, the hash size would be 128
-- bytes, so let us prepare for this. Since the VIEWs
-- "acs_users_all", "cc_users" and "registered_users" depend on on
-- column "password", we have to drop and recreate these.
--
DROP VIEW acs_users_all;
DROP VIEW cc_users;
--
-- Some legacy applications might contain still the VIEW
-- "registered_users_of_package_id", which is defined in
--
-- acs-subsite/sql/postgresql/user-profiles-create.sql
--
-- This file is NOT included in new installations since over 20 years,
-- so it is not maintained and treated as a leftover from ancient
-- times. Therefore, the view registered_users_of_package_id is not
-- recreated by this update script.
--
DROP VIEW IF EXISTS registered_users_of_package_id;
--
-- In case, the legacy view registered_users_of_package_id was in
-- place, it has to be dropped before registered_users.
--
DROP VIEW registered_users;
ALTER TABLE users ALTER COLUMN password TYPE character varying(128);
CREATE VIEW acs_users_all AS
SELECT pa.*, pe.*, u.*
FROM parties pa, persons pe, users u
WHERE pa.party_id = pe.person_id
AND pe.person_id = u.user_id;
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
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 m.group_id = acs__magic_object_id('registered_users')
and m.rel_id = mr.rel_id
and m.container_id = m.group_id
and m.rel_type = 'membership_rel';
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
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 m.group_id = acs__magic_object_id('registered_users')
and m.container_id = m.group_id
and m.rel_type = 'membership_rel'
and mr.member_state = 'approved'
and u.email_verified_p = 't';
--
-- Actually from acs-subsite (which is mandatory in acs-core), but
-- obsolete (see above).
--
-- 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;