Refactor Visibility to use a database instead of IN ({?}) queries.
[platal.git] / upgrade / 1.1.3 / 02_visibility.sql
1 ALTER TABLE profile_addresses CHANGE COLUMN pub pub ENUM('hidden', 'private', 'ax', 'public') NOT NULL DEFAULT 'private';
2 ALTER TABLE profile_corps CHANGE COLUMN corps_pub corps_pub ENUM('hidden', 'private', 'ax', 'public') NOT NULL DEFAULT 'private';
3 ALTER TABLE profile_job CHANGE COLUMN pub pub ENUM('hidden', 'private', 'ax', 'public') NOT NULL DEFAULT 'private';
4 ALTER TABLE profile_job CHANGE COLUMN email_pub email_pub ENUM('hidden', 'private', 'ax', 'public') NOT NULL DEFAULT 'private';
5 ALTER TABLE profile_networking CHANGE COLUMN pub pub ENUM('hidden', 'private', 'ax', 'public') NOT NULL DEFAULT 'private';
6 ALTER TABLE profile_photos CHANGE COLUMN pub pub ENUM('hidden', 'private', 'ax', 'public') NOT NULL DEFAULT 'private';
7 ALTER TABLE profile_phones CHANGE COLUMN pub pub ENUM('hidden', 'private', 'ax', 'public') NOT NULL DEFAULT 'private';
8 ALTER TABLE profiles CHANGE COLUMN freetext_pub freetext_pub ENUM('hidden', 'private', 'ax', 'public') NOT NULL DEFAULT 'private';
9 ALTER TABLE profiles CHANGE COLUMN medals_pub medals_pub ENUM('hidden', 'private', 'ax', 'public') NOT NULL DEFAULT 'private';
10 ALTER TABLE profiles CHANGE COLUMN alias_pub alias_pub ENUM('hidden', 'private', 'ax', 'public') NOT NULL DEFAULT 'private';
11
12 DROP TABLE IF EXISTS profile_visibility_enum;
13 CREATE TABLE profile_visibility_enum (
14 access_level ENUM('admin', 'private', 'ax', 'public', 'none'),
15 best_display_level ENUM('hidden', 'private', 'ax', 'public') NULL,
16 display_levels SET('hidden', 'private', 'ax', 'public')
17 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
18
19 INSERT INTO profile_visibility_enum (access_level, best_display_level, display_levels) VALUES
20 ('admin', 'hidden', 'hidden,private,ax,public'),
21 ('private', 'private', 'private,ax,public'),
22 ('ax', 'ax', 'ax,public'),
23 ('public', 'public', 'public'),
24 ('none', NULL, '');