Skip to content

Commit

Permalink
protect only essencial extensions
Browse files Browse the repository at this point in the history
  • Loading branch information
andrepereiradasilva committed Nov 27, 2016
1 parent 0220337 commit 0e0ecac
Show file tree
Hide file tree
Showing 3 changed files with 132 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
ALTER TABLE `#__extensions` MODIFY `protected` tinyint(3) NOT NULL DEFAULT 0 COMMENT 'Flag to indicate if the extension can be enabled/disabled.',
ALTER TABLE `#__extensions` ADD COLUMN `core` tinyint(3) NOT NULL DEFAULT 0 COMMENT 'Flag to indicate if is a Joomla core extension. Core extensions can not be uninstalled.',

-- Set all core extensions as core 1
-- Set all core extensions as core 1 and unprotected them.
UPDATE `#__extensions`
SET `core` = 1
SET `core` = 1, `protected` = 0
WHERE (`type` = 'component' AND `element` IN (
'com_mailto',
'com_wrapper',
Expand Down Expand Up @@ -103,3 +103,45 @@ OR (`type` = 'template' AND `element` IN ('beez3', 'hathor', 'protostar', 'isis'
OR (`type` = 'language' AND `element` IN ('en-GB'))
OR (`type` = 'file' AND `element` IN ('joomla'))
OR (`type` = 'package' AND `element` IN ('pkg_en-GB'));

-- Now protect from disabling essential extensions.
UPDATE `#__extensions`
SET `protected` = 1
WHERE (`type` = 'component' AND `element` IN (
'com_mailto',
'com_admin',
'com_cache',
'com_categories',
'com_checkin',
'com_cpanel',
'com_installer',
'com_languages',
'com_login',
'com_media',
'com_menus',
'com_modules',
'com_plugins',
'com_templates',
'com_content',
'com_config',
'com_users',
'com_joomlaupdate',
'com_ajax',
'com_postinstall'
))
OR (`type` = 'module' AND `element` IN ('mod_login', 'mod_menu', 'mod_quickicon', 'mod_toolbar'))
OR (`type` = 'plugin' AND
(
(`folder` = 'system' AND `element` IN ('logout'))
OR (`folder` = 'content' AND `element` IN ('joomla'))
OR (`folder` = 'user' AND `element` IN ('joomla'))
OR (`folder` = 'editors' AND `element` IN ('codemirror', 'none'))
OR (`folder` = 'authentication' AND `element` IN ('joomla'))
OR (`folder` = 'installer' AND `element` IN ('packageinstaller', 'folderinstaller', 'urlinstaller'))
OR (`folder` = 'extension' AND `element` IN ('joomla'))
)
)
OR (`type` = 'library' AND `element` IN ('phputf8', 'joomla', 'idna_convert', 'fof', 'phpass'))
OR (`type` = 'language' AND `element` IN ('en-GB'))
OR (`type` = 'file' AND `element` IN ('joomla'))
OR (`type` = 'package' AND `element` IN ('pkg_en-GB'));
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ ALTER TABLE "#__extensions" ADD COLUMN "core" smallint DEFAULT 0 NOT NULL;
COMMENT ON COLUMN "#__extensions"."protected" IS 'Flag to indicate if the extension can be enabled/disabled.';
COMMENT ON COLUMN "#__extensions"."core" IS 'Flag to indicate if is a Joomla core extension. Core extensions can not be uninstalled.';

-- Set all core extensions as core 1
-- Set all core extensions as core 1 and unprotected them.
UPDATE "#__extensions"
SET "core" = 1
SET "core" = 1, "protected" = 0
WHERE ("type" = 'component' AND "element" IN (
'com_mailto',
'com_wrapper',
Expand Down Expand Up @@ -105,3 +105,45 @@ OR ("type" = 'template' AND "element" IN ('beez3', 'hathor', 'protostar', 'isis'
OR ("type" = 'language' AND "element" IN ('en-GB'))
OR ("type" = 'file' AND "element" IN ('joomla'))
OR ("type" = 'package' AND "element" IN ('pkg_en-GB'));

-- Now protect from disabling essential extensions.
UPDATE "#__extensions"
SET "protected" = 1
WHERE ("type" = 'component' AND "element" IN (
'com_mailto',
'com_admin',
'com_cache',
'com_categories',
'com_checkin',
'com_cpanel',
'com_installer',
'com_languages',
'com_login',
'com_media',
'com_menus',
'com_modules',
'com_plugins',
'com_templates',
'com_content',
'com_config',
'com_users',
'com_joomlaupdate',
'com_ajax',
'com_postinstall'
))
OR ("type" = 'module' AND "element" IN ('mod_login', 'mod_menu', 'mod_quickicon', 'mod_toolbar'))
OR ("type" = 'plugin' AND
(
("folder" = 'system' AND "element" IN ('logout'))
OR ("folder" = 'content' AND "element" IN ('joomla'))
OR ("folder" = 'user' AND "element" IN ('joomla'))
OR ("folder" = 'editors' AND "element" IN ('codemirror', 'none'))
OR ("folder" = 'authentication' AND "element" IN ('joomla'))
OR ("folder" = 'installer' AND "element" IN ('packageinstaller', 'folderinstaller', 'urlinstaller'))
OR ("folder" = 'extension' AND "element" IN ('joomla'))
)
)
OR ("type" = 'library' AND "element" IN ('phputf8', 'joomla', 'idna_convert', 'fof', 'phpass'))
OR ("type" = 'language' AND "element" IN ('en-GB'))
OR ("type" = 'file' AND "element" IN ('joomla'))
OR ("type" = 'package' AND "element" IN ('pkg_en-GB'));
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
-- Add core field to extensions table.
ALTER TABLE [#__extensions] ADD [core] [smallint] NOT NULL DEFAULT 0;

-- Set all core extensions as core 1
-- Set all core extensions as core 1 and unprotected them.
UPDATE [#__extensions]
SET [core] = 1
SET [core] = 1, [protected] = 0
WHERE ([type] = 'component' AND [element] IN (
'com_mailto',
'com_wrapper',
Expand Down Expand Up @@ -102,3 +102,45 @@ OR ([type] = 'template' AND [element] IN ('beez3', 'hathor', 'protostar', 'isis'
OR ([type] = 'language' AND [element] IN ('en-GB'))
OR ([type] = 'file' AND [element] IN ('joomla'))
OR ([type] = 'package' AND [element] IN ('pkg_en-GB'));

-- Now protect from disabling essential extensions.
UPDATE [#__extensions]
SET [protected] = 1
WHERE ([type] = 'component' AND [element] IN (
'com_mailto',
'com_admin',
'com_cache',
'com_categories',
'com_checkin',
'com_cpanel',
'com_installer',
'com_languages',
'com_login',
'com_media',
'com_menus',
'com_modules',
'com_plugins',
'com_templates',
'com_content',
'com_config',
'com_users',
'com_joomlaupdate',
'com_ajax',
'com_postinstall'
))
OR ([type] = 'module' AND [element] IN ('mod_login', 'mod_menu', 'mod_quickicon', 'mod_toolbar'))
OR ([type] = 'plugin' AND
(
([folder] = 'system' AND [element] IN ('logout'))
OR ([folder] = 'content' AND [element] IN ('joomla'))
OR ([folder] = 'user' AND [element] IN ('joomla'))
OR ([folder] = 'editors' AND [element] IN ('codemirror', 'none'))
OR ([folder] = 'authentication' AND [element] IN ('joomla'))
OR ([folder] = 'installer' AND [element] IN ('packageinstaller', 'folderinstaller', 'urlinstaller'))
OR ([folder] = 'extension' AND [element] IN ('joomla'))
)
)
OR ([type] = 'library' AND [element] IN ('phputf8', 'joomla', 'idna_convert', 'fof', 'phpass'))
OR ([type] = 'language' AND [element] IN ('en-GB'))
OR ([type] = 'file' AND [element] IN ('joomla'))
OR ([type] = 'package' AND [element] IN ('pkg_en-GB'));

0 comments on commit 0e0ecac

Please sign in to comment.