mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
Merged V3.4 to HEAD
24603: Merged DEV/BELARUS/V3.4-2010_11_29 to V3.4 24329: ALF-5896: Schema auto-update failed (3.3g -> 3.4b) - MySQL 24458: ALF-5896: Schema auto-update failed (3.3g -> 3.4b) - Other DBs 24594: ALF-5896: Schema auto-update failed (3.3g -> 3.4b) - Refinements git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@25120 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -36,7 +36,84 @@ INSERT INTO alf_tmp_min_ace (min, permission_id, authority_id, allowed, applies)
|
||||
GROUP BY
|
||||
ace1.permission_id, ace1.authority_id, ace1.allowed, ace1.applies
|
||||
;
|
||||
|
||||
|
||||
|
||||
CREATE TABLE alf_tmp_acl_members (
|
||||
id BIGINT NOT NULL,
|
||||
min BIGINT NOT NULL,
|
||||
acl_id BIGINT NOT NULL,
|
||||
pos BIGINT,
|
||||
ace_id BIGINT NOT NULL,
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE (min, acl_id, pos, ace_id)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
|
||||
INSERT INTO
|
||||
alf_tmp_acl_members
|
||||
SELECT
|
||||
mem.id, help.min, mem.acl_id, mem.pos, mem.ace_id
|
||||
FROM
|
||||
alf_acl_member mem
|
||||
JOIN
|
||||
alf_access_control_entry ace
|
||||
ON
|
||||
mem.ace_id = ace.id
|
||||
JOIN
|
||||
alf_tmp_min_ace help
|
||||
ON
|
||||
help.permission_id = ace.permission_id AND
|
||||
help.authority_id = ace.authority_id AND
|
||||
help.allowed = ace.allowed AND
|
||||
help.applies = ace.applies;
|
||||
|
||||
|
||||
CREATE TABLE alf_tmp_acl_groups (
|
||||
min BIGINT NOT NULL,
|
||||
acl_id BIGINT NOT NULL,
|
||||
pos BIGINT,
|
||||
group_min BIGINT NOT NULL,
|
||||
UNIQUE (min, acl_id, pos)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
|
||||
INSERT INTO
|
||||
alf_tmp_acl_groups
|
||||
SELECT
|
||||
mems.min, mems.acl_id, mems.pos, min(mems.ace_id)
|
||||
FROM
|
||||
alf_tmp_acl_members mems
|
||||
GROUP BY
|
||||
mems.min, mems.acl_id, mems.pos
|
||||
HAVING
|
||||
count(*) > 1;
|
||||
|
||||
|
||||
DELETE FROM
|
||||
alf_acl_member
|
||||
WHERE
|
||||
id IN (
|
||||
SELECT
|
||||
mems.id
|
||||
FROM
|
||||
alf_tmp_acl_members mems
|
||||
JOIN
|
||||
alf_tmp_acl_groups groups
|
||||
ON
|
||||
mems.min = groups.min AND
|
||||
mems.acl_id = groups.acl_id AND
|
||||
mems.pos = groups.pos
|
||||
WHERE
|
||||
mems.ace_id <> groups.group_min
|
||||
);
|
||||
|
||||
|
||||
DROP TABLE
|
||||
alf_tmp_acl_members;
|
||||
|
||||
DROP TABLE
|
||||
alf_tmp_acl_groups;
|
||||
|
||||
|
||||
-- Update members to point to the first use of an access control entry
|
||||
UPDATE alf_acl_member mem
|
||||
|
Reference in New Issue
Block a user