diff options
Diffstat (limited to 'admin/upgrades')
| -rw-r--r-- | admin/upgrades/2.1.0.php | 22 | ||||
| -rw-r--r-- | admin/upgrades/2.1.1.php | 26 | ||||
| -rw-r--r-- | admin/upgrades/2.1.2.php | 24 | ||||
| -rwxr-xr-x | admin/upgrades/5.0.0.php | 12 | ||||
| -rwxr-xr-x | admin/upgrades/roles_upgrade.sql | 139 |
5 files changed, 151 insertions, 72 deletions
diff --git a/admin/upgrades/2.1.0.php b/admin/upgrades/2.1.0.php deleted file mode 100644 index 34ce4ec..0000000 --- a/admin/upgrades/2.1.0.php +++ /dev/null @@ -1,22 +0,0 @@ -<?php -/** - * @version $Header$ - */ -global $gBitInstaller; - -$infoHash = array( - 'package' => USERS_PKG_NAME, - 'version' => str_replace( '.php', '', basename( __FILE__ )), - 'description' => "Remove the unused <em>users_semaphores</em> table from your database. If you need a semaphores feature, there is a <a class='external' href='http://www.bitweaver.org/wiki/SemaphorePackage'>SemaphorePackage</a> now.", - 'post_upgrade' => NULL, -); -$gBitInstaller->registerPackageUpgrade( $infoHash, array( - -array( 'DATADICT' => array( - array( 'DROPTABLE' => array( - 'users_semaphores', - )), -)), - -)); -?> diff --git a/admin/upgrades/2.1.1.php b/admin/upgrades/2.1.1.php deleted file mode 100644 index 32c5883..0000000 --- a/admin/upgrades/2.1.1.php +++ /dev/null @@ -1,26 +0,0 @@ -<?php -/** - * @version $Header$ - */ -global $gBitInstaller; - -$infoHash = array( - 'package' => USERS_PKG_NAME, - 'version' => str_replace( '.php', '', basename( __FILE__ )), - 'description' => "Minor fix to ip columns to support IPv6", - 'post_upgrade' => NULL, -); - -// Increase the size of the IP column to cope with IPv6 -$gBitInstaller->registerPackageUpgrade( $infoHash, array( - -array( 'QUERY' => - array( - 'PGSQL' => array( "ALTER TABLE `".BIT_DB_PREFIX."users_cnxn` ALTER `ip` TYPE VARCHAR(39)" ,), - 'OCI' => array( "ALTER TABLE `".BIT_DB_PREFIX."users_cnxn` MODIFY (`ip` TYPE VARCHAR2(39))" ,), - 'MYSQL' => array( "ALTER TABLE `".BIT_DB_PREFIX."users_cnxn` MODIFY `ip` VARCHAR(39)" ,), - ), -), - -)); -?> diff --git a/admin/upgrades/2.1.2.php b/admin/upgrades/2.1.2.php deleted file mode 100644 index 38ba3cb..0000000 --- a/admin/upgrades/2.1.2.php +++ /dev/null @@ -1,24 +0,0 @@ -<?php -/** - * @version $Header$ - */ -global $gBitInstaller; - -$infoHash = array( - 'package' => USERS_PKG_NAME, - 'version' => str_replace( '.php', '', basename( __FILE__ )), - 'description' => "Clean expiring password values since feature was previously non-functional.", - 'post_upgrade' => NULL, -); - -$gBitInstaller->registerPackageUpgrade( $infoHash, array( - -array( 'PHP' => ' - // make sure plugins are up to date. - global $gBitDb; - $gBitDb->query( "UPDATE `".BIT_DB_PREFIX."users_users` SET `pass_due`=NULL" ); -' -) - -)); -?> diff --git a/admin/upgrades/5.0.0.php b/admin/upgrades/5.0.0.php new file mode 100755 index 0000000..bf7e79e --- /dev/null +++ b/admin/upgrades/5.0.0.php @@ -0,0 +1,12 @@ +<?php +/** + * @version $Header$ + */ +global $gBitInstaller; + +$infoHash = [ + 'package' => USERS_PKG_NAME, + 'version' => str_replace( '.php', '', basename( __FILE__ ) ), + 'description' => "Set core package version number.", +]; +$gBitInstaller->registerPackageUpgrade( $infoHash ); diff --git a/admin/upgrades/roles_upgrade.sql b/admin/upgrades/roles_upgrade.sql new file mode 100755 index 0000000..d53d397 --- /dev/null +++ b/admin/upgrades/roles_upgrade.sql @@ -0,0 +1,139 @@ +CREATE GENERATOR USERS_ROLES_ID_SEQ; +SET GENERATOR USERS_ROLES_ID_SEQ TO 3; +DROP GENERATOR USERS_GROUPS_ID_SEQ; + +CREATE TABLE LIBERTY_CONTENT_ROLE_MAP +( + CONTENT_ID Integer NOT NULL, + ROLE_ID Integer NOT NULL, + PRIMARY KEY (CONTENT_ID,ROLE_ID) +); + +COMMIT; + +INSERT INTO LIBERTY_CONTENT_ROLE_MAP ( CONTENT_ID, ROLE_ID ) +SELECT lg.CONTENT_ID, lg.GROUP_ID AS ROLE_ID FROM LIBERTY_CONTENT_GROUP_MAP lg; + +DROP TABLE LIBERTY_CONTENT_GROUP_MAP; + +ALTER TABLE LIBERTY_CONTENT_PERMISSIONS DROP CONSTRAINT LIBERTY_CONTENT_PERM_GROUP_REF; +ALTER TABLE LIBERTY_CONTENT_PERMISSIONS DROP CONSTRAINT INTEG_83; +ALTER TABLE LIBERTY_CONTENT_PERMISSIONS ALTER GROUP_ID TO ROLE_ID; +ALTER TABLE LIBERTY_CONTENT_PERMISSIONS +ADD CONSTRAINT PK_LIBERTY_CONTENT_PERMISSIONS +PRIMARY KEY (ROLE_ID, PERM_NAME, CONTENT_ID); + +ALTER TABLE THEMES_LAYOUTS ALTER GROUPS TO ROLES; + +CREATE TABLE USERS_ROLES +( + ROLE_ID Integer NOT NULL, + USER_ID Integer NOT NULL, + ROLE_NAME Varchar(30), + IS_DEFAULT Varchar(1), + ROLE_DESC Varchar(255), + ROLE_HOME Varchar(255), + IS_PUBLIC Varchar(1), + AFTER_REGISTRATION_PAGE Varchar(255), + PRIMARY KEY (ROLE_ID) +); + +CREATE TABLE USERS_ROLES_MAP +( + USER_ID Integer NOT NULL, + ROLE_ID Integer NOT NULL, + PRIMARY KEY (USER_ID,ROLE_ID) +); + +CREATE TABLE USERS_ROLE_PERMISSIONS +( + ROLE_ID Integer NOT NULL, + PERM_NAME Varchar(30) NOT NULL, + PERM_VALUE Varchar(1) DEFAULT '', + PRIMARY KEY (ROLE_ID,PERM_NAME) +); + +ALTER TABLE USERS_USERS ALTER DEFAULT_GROUP_ID TO DEFAULT_ROLE_ID; + +ALTER TABLE LIBERTY_CONTENT_ROLE_MAP ADD CONSTRAINT PROTECTOR_CONTENT_REF + FOREIGN KEY (CONTENT_ID) REFERENCES LIBERTY_CONTENT (CONTENT_ID); +ALTER TABLE LIBERTY_CONTENT_ROLE_MAP ADD CONSTRAINT PROTECTOR_ROLE_REF + FOREIGN KEY (ROLE_ID) REFERENCES USERS_ROLES (ROLE_ID); + +CREATE INDEX LIBERTY_CONTENT_PERM_ROLE_IDX ON LIBERTY_CONTENT_PERMISSIONS (ROLE_ID); + +ALTER TABLE LIBERTY_CONTENT_PERMISSIONS ADD CONSTRAINT LIBERTY_CONTENT_PERM_ROLE_REF + FOREIGN KEY (ROLE_ID) REFERENCES USERS_ROLES (ROLE_ID); + +ALTER TABLE USERS_ROLES ADD CONSTRAINT USERS_ROLES_USER_REF + FOREIGN KEY (USER_ID) REFERENCES USERS_USERS (USER_ID); +CREATE INDEX USERS_ROLES_USER_IDX ON USERS_ROLES (USER_ID); +CREATE UNIQUE INDEX USERS_ROLES_USER_NAME_IDX ON USERS_ROLES (USER_ID,ROLE_NAME); +ALTER TABLE USERS_ROLES_MAP ADD CONSTRAINT USERS_ROLES_MAP_ROLE_REF + FOREIGN KEY (ROLE_ID) REFERENCES USERS_ROLES (ROLE_ID); +ALTER TABLE USERS_ROLES_MAP ADD CONSTRAINT USERS_ROLES_MAP_USER_REF + FOREIGN KEY (USER_ID) REFERENCES USERS_USERS (USER_ID); +CREATE INDEX USERS_ROLES_MAP_ROLE_IDX ON USERS_ROLES_MAP (ROLE_ID); +CREATE INDEX USERS_ROLES_MAP_USER_IDX ON USERS_ROLES_MAP (USER_ID); +ALTER TABLE USERS_ROLE_PERMISSIONS ADD CONSTRAINT USERS_ROLE_PERM_PERM_REF + FOREIGN KEY (PERM_NAME) REFERENCES USERS_PERMISSIONS (PERM_NAME); +ALTER TABLE USERS_ROLE_PERMISSIONS ADD CONSTRAINT USERS_ROLE_PERM_ROLE_REF + FOREIGN KEY (ROLE_ID) REFERENCES USERS_ROLES (ROLE_ID); +CREATE INDEX USERS_ROLE_PERM_PERM_IDX ON USERS_ROLE_PERMISSIONS (PERM_NAME); +CREATE INDEX USERS_ROLE_PERM_ROLE_IDX ON USERS_ROLE_PERMISSIONS (ROLE_ID); + +GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE + ON LIBERTY_CONTENT_ROLE_MAP TO SYSDBA WITH GRANT OPTION; + +GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE + ON USERS_PERMISSIONS TO SYSDBA WITH GRANT OPTION; + +GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE + ON USERS_ROLES TO SYSDBA WITH GRANT OPTION; + +GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE + ON USERS_ROLES_MAP TO SYSDBA WITH GRANT OPTION; + +GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE + ON USERS_ROLE_PERMISSIONS TO SYSDBA WITH GRANT OPTION; + +COMMIT; + +INSERT INTO USERS_ROLES +SELECT * FROM USERS_GROUPS; + +INSERT INTO USERS_ROLES_MAP +SELECT * FROM USERS_GROUPS_MAP; + +INSERT INTO USERS_ROLE_PERMISSIONS +SELECT * FROM USERS_GROUP_PERMISSIONS; + +DROP TABLE USERS_GROUP_PERMISSIONS; +DROP TABLE USERS_GROUPS_MAP; +DROP TABLE USERS_GROUPS; +DROP INDEX LIBERTY_CONTENT_PERM_GROUP_IDX; + +INSERT INTO USERS_PERMISSIONS (PERM_NAME, PERM_DESC, PERM_LEVEL, PACKAGE) VALUES ('p_users_assign_role_perms', 'Can assign permissions to personal roles', 'editors', 'users'); +INSERT INTO USERS_PERMISSIONS (PERM_NAME, PERM_DESC, PERM_LEVEL, PACKAGE) VALUES ('p_users_assign_role_members', 'Can assign users to personal roles', 'registered', 'users'); +INSERT INTO USERS_PERMISSIONS (PERM_NAME, PERM_DESC, PERM_LEVEL, PACKAGE) VALUES ('p_users_role_subroles', 'Can include other roles in roles', 'editors', 'users'); +INSERT INTO USERS_PERMISSIONS (PERM_NAME, PERM_DESC, PERM_LEVEL, PACKAGE) VALUES ('p_users_create_personal_roles', 'Can create personal user roles', 'editors', 'users'); + +UPDATE USERS_ROLE_PERMISSIONS SET PERM_NAME = 'p_users_assign_role_members' WHERE PERM_NAME = 'p_users_assign_group_members'; +UPDATE USERS_ROLE_PERMISSIONS SET PERM_NAME = 'p_users_assign_role_perms' WHERE PERM_NAME = 'p_users_assign_group_perms'; +UPDATE USERS_ROLE_PERMISSIONS SET PERM_NAME = 'p_users_role_subroles' WHERE PERM_NAME = 'p_users_group_subgroups'; +UPDATE USERS_ROLE_PERMISSIONS SET PERM_NAME = 'p_users_create_personal_roles' WHERE PERM_NAME = 'p_users_create_personal_groups'; +UPDATE LIBERTY_CONTENT_PERMISSIONS SET PERM_NAME = 'p_users_assign_role_members' WHERE PERM_NAME = 'p_users_assign_group_members'; +UPDATE LIBERTY_CONTENT_PERMISSIONS SET PERM_NAME = 'p_users_assign_role_perms' WHERE PERM_NAME = 'p_users_assign_group_perms'; +UPDATE LIBERTY_CONTENT_PERMISSIONS SET PERM_NAME = 'p_users_role_subroles' WHERE PERM_NAME = 'p_users_group_subgroups'; +UPDATE LIBERTY_CONTENT_PERMISSIONS SET PERM_NAME = 'p_users_create_personal_roles' WHERE PERM_NAME = 'p_users_create_personal_groups'; + +DELETE FROM USERS_PERMISSIONS WHERE PERM_NAME = 'p_users_assign_group_members'; +DELETE FROM USERS_PERMISSIONS WHERE PERM_NAME = 'p_users_assign_group_perms'; +DELETE FROM USERS_PERMISSIONS WHERE PERM_NAME = 'p_users_group_subgroups'; +DELETE FROM USERS_PERMISSIONS WHERE PERM_NAME = 'p_users_create_personal_groups'; + +UPDATE KERNEL_CONFIG SET +CONFIG_NAME = 'protector_single_role', +PACKAGE = 'protector', +CONFIG_VALUE = 'y' +WHERE CONFIG_NAME = 'protector_single_group';
\ No newline at end of file |
