liquid_feedback_core
diff core.sql @ 235:2a6984869ba3
Delete sessions:
- when they expire
- in function "delete_private_data" (security relevant in certain setups)
- in function "delete_member"
(Sessions had been removed in changeset ed2f94a397cd and re-added in changeset 4e3d8f1ca3a9 without mechanisms for deletion of sessions)
- when they expire
- in function "delete_private_data" (security relevant in certain setups)
- in function "delete_member"
(Sessions had been removed in changeset ed2f94a397cd and re-added in changeset 4e3d8f1ca3a9 without mechanisms for deletion of sessions)
author | jbe |
---|---|
date | Tue Mar 13 18:04:53 2012 +0100 (2012-03-13) |
parents | cf8a090503c0 |
children | fefc15eb747b |
line diff
1.1 --- a/core.sql Sun Mar 11 18:48:51 2012 +0100 1.2 +++ b/core.sql Tue Mar 13 18:04:53 2012 +0100 1.3 @@ -2013,6 +2013,16 @@ 1.4 COMMENT ON VIEW "battle_view" IS 'Number of members preferring one initiative (or status-quo) to another initiative (or status-quo); Used to fill "battle" table'; 1.5 1.6 1.7 +CREATE VIEW "expired_session" AS 1.8 + SELECT * FROM "session" WHERE now() > "expiry"; 1.9 + 1.10 +CREATE RULE "delete" AS ON DELETE TO "expired_session" DO INSTEAD 1.11 + DELETE FROM "session" WHERE "ident" = OLD."ident"; 1.12 + 1.13 +COMMENT ON VIEW "expired_session" IS 'View containing all expired sessions where DELETE is possible'; 1.14 +COMMENT ON RULE "delete" ON "expired_session" IS 'Rule allowing DELETE on rows in "expired_session" view, i.e. DELETE FROM "expired_session"'; 1.15 + 1.16 + 1.17 CREATE VIEW "open_issue" AS 1.18 SELECT * FROM "issue" WHERE "closed" ISNULL; 1.19 1.20 @@ -4034,6 +4044,7 @@ 1.21 DECLARE 1.22 "issue_id_v" "issue"."id"%TYPE; 1.23 BEGIN 1.24 + DELETE FROM "expired_session"; 1.25 PERFORM "check_activity"(); 1.26 PERFORM "calculate_member_counts"(); 1.27 FOR "issue_id_v" IN SELECT "id" FROM "open_issue" LOOP 1.28 @@ -4145,6 +4156,7 @@ 1.29 DELETE FROM "member_image" WHERE "member_id" = "member_id_p"; 1.30 DELETE FROM "contact" WHERE "member_id" = "member_id_p"; 1.31 DELETE FROM "ignored_member" WHERE "member_id" = "member_id_p"; 1.32 + DELETE FROM "session" WHERE "member_id" = "member_id_p"; 1.33 DELETE FROM "area_setting" WHERE "member_id" = "member_id_p"; 1.34 DELETE FROM "issue_setting" WHERE "member_id" = "member_id_p"; 1.35 DELETE FROM "ignored_initiative" WHERE "member_id" = "member_id_p"; 1.36 @@ -4204,6 +4216,7 @@ 1.37 DELETE FROM "member_image"; 1.38 DELETE FROM "contact"; 1.39 DELETE FROM "ignored_member"; 1.40 + DELETE FROM "session"; 1.41 DELETE FROM "area_setting"; 1.42 DELETE FROM "issue_setting"; 1.43 DELETE FROM "ignored_initiative";