X-Git-Url: https://scm.fusionforge.org/anonscm/gitweb?p=fusionforge%2Ffusionforge.git;a=blobdiff_plain;f=src%2Fdb%2F20100926-pfo-rbac.sql;h=f3e33e25d7bfcb4f7cad373801582e292e95b128;hp=73ade80c8ee5f239be4f9869a267fabe43a437ab;hb=8acf8c45e2fa0858e23e268d17d429e5210bac72;hpb=f1b8c12efec0d5a7ee96aa540c9398f3ebeb53f6 diff --git a/src/db/20100926-pfo-rbac.sql b/src/db/20100926-pfo-rbac.sql index 73ade80c8e..f3e33e25d7 100644 --- a/src/db/20100926-pfo-rbac.sql +++ b/src/db/20100926-pfo-rbac.sql @@ -29,7 +29,7 @@ BEGIN IF nsec = 'project_admin' AND nref = opid THEN RETURN 1 ; END IF ; - + ELSIF os.section_name IN ('trackeradmin', 'pmadmin', 'forumadmin') THEN CONTINUE WHEN os.value != '2' ; onsec = CASE WHEN os.section_name = 'trackeradmin' THEN 'tracker_admin' @@ -192,13 +192,13 @@ BEGIN PERFORM insert_pfo_role_setting (2, 'tracker', t.group_artifact_id, 1) ; END LOOP ; - + FOR p IN SELECT * FROM project_group_list WHERE group_id = g.group_id AND is_public = 1 LOOP PERFORM insert_pfo_role_setting (1, 'pm', p.group_project_id, 1) ; PERFORM insert_pfo_role_setting (2, 'pm', p.group_project_id, 1) ; END LOOP ; - + FOR f IN SELECT * FROM forum_group_list WHERE group_id = g.group_id AND is_public = 1 LOOP IF f.allow_anonymous = 1 THEN @@ -217,7 +217,7 @@ BEGIN PERFORM insert_pfo_role_setting (2, 'forum', f.group_forum_id, 2) ; END IF ; END LOOP ; - + END LOOP ; END ; @@ -251,7 +251,7 @@ BEGIN INSERT INTO pfo_role (SELECT nextval ('pfo_role_seq'), role_name, 1, group_id, false, role_id FROM role) ; - INSERT INTO pfo_user_role (SELECT ug.user_id, r.role_id FROM user_group ug, pfo_role r WHERE ug.role_id = r.old_role_id AND r.old_role_id != 1) ; + INSERT INTO pfo_user_role (SELECT DISTINCT ug.user_id, r.role_id FROM user_group ug, pfo_role r WHERE ug.role_id = r.old_role_id AND r.old_role_id != 1) ; PERFORM migrate_rbac_permissions_to_pfo_rbac () ; PERFORM migrate_role_observer_to_pfo_rbac () ; @@ -272,5 +272,3 @@ BEGIN END ; $$ LANGUAGE plpgsql ; - -SELECT pfo_rbac_full_migration () ;