mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-07-24 17:31:52 +00:00
Rollback visibility rules cleanup (#4426)
* Revert "[ACS-9369] Updated rule-migration-guide.md to include missed rule (#4420)" This reverts commitb3e2af7f0f
. * Revert "[ACS-9369] Resolved issues where visibility rules with a single element array would log errors (#4416)" This reverts commit4e33f1126d
. * Revert "[ACS-8694] Cleanup of visibility rules for extensions in ACA (#4140)" This reverts commitf1c4dcf45d
.
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -15,9 +15,7 @@
|
||||
"id": "app.toolbar.rules.separator",
|
||||
"type": "separator",
|
||||
"rules": {
|
||||
"visible": [
|
||||
"app.selection.folder"
|
||||
]
|
||||
"visible": "app.selection.folder"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -26,9 +24,7 @@
|
||||
"description": "ACA_FOLDER_RULES.MENU.CREATE_RULES_DESC",
|
||||
"icon": "add",
|
||||
"rules": {
|
||||
"visible": [
|
||||
"rules.canCreateFolderRule"
|
||||
]
|
||||
"visible": "rules.canCreateFolderRule"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -37,9 +33,7 @@
|
||||
"description": "ACA_FOLDER_RULES.MENU.LINK_RULES_DESC",
|
||||
"icon": "link",
|
||||
"rules": {
|
||||
"visible": [
|
||||
"rules.canLinkFolderRule"
|
||||
]
|
||||
"visible": "rules.canLinkFolderRule"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -51,9 +45,7 @@
|
||||
"id": "app.toolbar.rules.separator",
|
||||
"type": "separator",
|
||||
"rules": {
|
||||
"visible": [
|
||||
"app.selection.folder"
|
||||
]
|
||||
"visible": "app.selection.folder"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -62,9 +54,7 @@
|
||||
"description": "ACA_FOLDER_RULES.MENU.CREATE_RULES_DESC",
|
||||
"icon": "add",
|
||||
"rules": {
|
||||
"visible": [
|
||||
"rules.canCreateFolderRule"
|
||||
]
|
||||
"visible": "rules.canCreateFolderRule"
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -73,9 +63,7 @@
|
||||
"description": "ACA_FOLDER_RULES.MENU.LINK_RULES_DESC",
|
||||
"icon": "link",
|
||||
"rules": {
|
||||
"visible": [
|
||||
"rules.canLinkFolderRule"
|
||||
]
|
||||
"visible": "rules.canLinkFolderRule"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@@ -77,7 +77,7 @@ export class AcaFolderRulesModule {
|
||||
translation.addTranslationFolder('folder-rules', 'assets/folder-rules');
|
||||
|
||||
extensions.setEvaluators({
|
||||
'rules.isFolderRulesEnabled': rules.isFolderRulesEnabled
|
||||
'rules.canManageFolderRules': rules.canManageFolderRules
|
||||
});
|
||||
}
|
||||
}
|
||||
|
@@ -22,7 +22,9 @@
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { isFolderRulesEnabled } from './folder-rules.rules';
|
||||
import { AcaRuleContext } from '@alfresco/aca-shared/rules';
|
||||
import { canManageFolderRules, isFolderRulesEnabled } from './folder-rules.rules';
|
||||
import { NodeEntry } from '@alfresco/js-api';
|
||||
|
||||
describe('Folder Rules Visibility Rules', () => {
|
||||
describe('isFolderRulesEnabled', () => {
|
||||
@@ -48,4 +50,44 @@ describe('Folder Rules Visibility Rules', () => {
|
||||
expect(result).toEqual(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('canManageFolderRules', () => {
|
||||
let context: AcaRuleContext;
|
||||
|
||||
beforeEach(() => {
|
||||
context = {
|
||||
appConfig: {
|
||||
get: () => true
|
||||
},
|
||||
selection: {
|
||||
folder: {} as any
|
||||
},
|
||||
navigation: {
|
||||
url: '/personal-files'
|
||||
},
|
||||
permissions: {
|
||||
check: () => true
|
||||
}
|
||||
} as any;
|
||||
});
|
||||
|
||||
it('should allow creating a rule for the selected folder', () => {
|
||||
const result = canManageFolderRules(context);
|
||||
expect(result).toEqual(true);
|
||||
});
|
||||
|
||||
it('should not allow creating a rule if no folder selected', () => {
|
||||
context.selection.folder = null;
|
||||
|
||||
const result = canManageFolderRules(context);
|
||||
expect(result).toEqual(false);
|
||||
});
|
||||
|
||||
it('should not allow creating a rule if the selected node is a smart folder', () => {
|
||||
context.selection.first = { entry: { aspectNames: ['smf:customConfigSmartFolder'], isFolder: true } } as NodeEntry;
|
||||
const result = canManageFolderRules(context);
|
||||
|
||||
expect(result).toBe(false);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@@ -22,6 +22,10 @@
|
||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
import { AcaRuleContext } from '@alfresco/aca-shared/rules';
|
||||
import { AcaRuleContext, canEditFolder, hasFolderSelected, isNotFavorites, isSmartFolder } from '@alfresco/aca-shared/rules';
|
||||
|
||||
export const isFolderRulesEnabled = (context: AcaRuleContext) => context.appConfig.get<boolean>('plugins.folderRules', false);
|
||||
export const isFolderRulesAllowed = (context: AcaRuleContext) =>
|
||||
isFolderRulesEnabled(context) && canEditFolder(context) && hasFolderSelected(context) && isNotFavorites(context) && !isSmartFolder(context);
|
||||
|
||||
export const canManageFolderRules = (context: AcaRuleContext): boolean => isFolderRulesAllowed(context);
|
||||
|
@@ -29,9 +29,7 @@
|
||||
"click": "aos.openWith.office"
|
||||
},
|
||||
"rules": {
|
||||
"visible": [
|
||||
"aos.canOpenWithOffice"
|
||||
]
|
||||
"visible": "aos.canOpenWithOffice"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -47,9 +45,7 @@
|
||||
"click": "aos.openWith.office"
|
||||
},
|
||||
"rules": {
|
||||
"visible": [
|
||||
"aos.canOpenWithOffice"
|
||||
]
|
||||
"visible": "aos.canOpenWithOffice"
|
||||
}
|
||||
}
|
||||
],
|
||||
@@ -67,9 +63,7 @@
|
||||
"click": "aos.openWith.office"
|
||||
},
|
||||
"rules": {
|
||||
"visible": [
|
||||
"aos.canOpenWithOffice"
|
||||
]
|
||||
"visible": "aos.canOpenWithOffice"
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@@ -163,42 +163,74 @@ export class ContentServiceExtensionModule {
|
||||
});
|
||||
|
||||
extensions.setEvaluators({
|
||||
canCopyNode: rules.canCopyNode,
|
||||
canToggleJoinLibrary: rules.canToggleJoinLibrary,
|
||||
canEditFolder: rules.canEditFolder,
|
||||
isTrashcanItemSelected: rules.isTrashcanItemSelected,
|
||||
canViewFile: rules.canViewFile,
|
||||
canLeaveLibrary: rules.canLeaveLibrary,
|
||||
canToggleSharedLink: rules.canToggleSharedLink,
|
||||
canToggleFileLock: rules.canToggleFileLock,
|
||||
canShowInfoDrawer: rules.canShowInfoDrawer,
|
||||
canManageFileVersions: rules.canManageFileVersions,
|
||||
canManagePermissions: rules.canManagePermissions,
|
||||
canToggleEditOffline: rules.canToggleEditOffline,
|
||||
canToggleFavorite: rules.canToggleFavorite,
|
||||
isLibraryManager: rules.isLibraryManager,
|
||||
canEditAspects: rules.canEditAspects,
|
||||
isSmartFolder: rules.isSmartFolder,
|
||||
isMultiSelection: rules.isMultiselection,
|
||||
canShowExpand: rules.canShowExpand,
|
||||
canInfoPreview: rules.canInfoPreview,
|
||||
|
||||
'app.selection.canDelete': rules.canDeleteSelection,
|
||||
'app.selection.file.canUnlock': rules.canUnlockFile,
|
||||
'app.selection.file.canLock': rules.canLockFile,
|
||||
'app.selection.canDownload': rules.canDownloadSelection,
|
||||
'app.selection.notEmpty': rules.hasSelection,
|
||||
'app.selection.canUnshare': rules.canUnshareNodes,
|
||||
'app.selection.canAddFavorite': rules.canAddFavorite,
|
||||
'app.selection.canRemoveFavorite': rules.canRemoveFavorite,
|
||||
'app.selection.first.canUpdate': rules.canUpdateSelectedNode,
|
||||
'app.selection.file': rules.hasFileSelected,
|
||||
'app.selection.file.canShare': rules.canShareFile,
|
||||
'app.selection.file.isShared': rules.isShared,
|
||||
'app.selection.file.isLocked': rules.hasLockedFiles,
|
||||
'app.selection.file.isLockOwner': rules.isUserWriteLockOwner,
|
||||
'app.selection.file.canUploadVersion': rules.canUploadVersion,
|
||||
'app.selection.library': rules.hasLibrarySelected,
|
||||
'app.selection.isPrivateLibrary': rules.isPrivateLibrary,
|
||||
'app.selection.hasLibraryRole': rules.hasLibraryRole,
|
||||
'app.selection.hasNoLibraryRole': rules.hasNoLibraryRole,
|
||||
'app.selection.folder': rules.hasFolderSelected,
|
||||
'app.selection.folder.canUpdate': rules.canUpdateSelectedFolder,
|
||||
'app.selection.displayedKnowledgeRetrievalButton': rules.canDisplayKnowledgeRetrievalButton,
|
||||
|
||||
'app.navigation.folder.canCreate': rules.canCreateFolder,
|
||||
'app.navigation.folder.canUpload': rules.canUpload,
|
||||
'app.navigation.isTrashcan': rules.isTrashcan,
|
||||
'app.navigation.isNotTrashcan': rules.isNotTrashcan,
|
||||
'app.navigation.isLibraries': rules.isLibraries,
|
||||
'app.navigation.isLibraryFiles': rules.isLibraryFiles,
|
||||
'app.navigation.isPersonalFiles': rules.isPersonalFiles,
|
||||
'app.navigation.isNotLibraries': rules.isNotLibraries,
|
||||
'app.navigation.isSharedFiles': rules.isSharedFiles,
|
||||
'app.navigation.isNotSharedFiles': rules.isNotSharedFiles,
|
||||
'app.navigation.isFavorites': rules.isFavorites,
|
||||
'app.navigation.isNotFavorites': rules.isNotFavorites,
|
||||
'app.navigation.isRecentFiles': rules.isRecentFiles,
|
||||
'app.navigation.isNotRecentFiles': rules.isNotRecentFiles,
|
||||
'app.navigation.isSearchResults': rules.isSearchResults,
|
||||
'app.navigation.isNotSearchResults': rules.isNotSearchResults,
|
||||
'app.navigation.isPreview': rules.isPreview,
|
||||
'app.navigation.isDetails': rules.isDetails,
|
||||
'app.navigation.isSharedPreview': rules.isSharedPreview,
|
||||
'app.navigation.isFavoritesPreview': rules.isFavoritesPreview,
|
||||
'app.navigation.isSharedFileViewer': rules.isSharedFileViewer,
|
||||
'app.navigation.isNotDetails': rules.isNotDetails,
|
||||
|
||||
'repository.isQuickShareEnabled': rules.hasQuickShareEnabled,
|
||||
'user.isAdmin': rules.isAdmin,
|
||||
'app.canShowLogout': rules.canShowLogout,
|
||||
'app.isContentServiceEnabled': rules.isContentServiceEnabled,
|
||||
'app.isUploadSupported': rules.isUploadSupported,
|
||||
'app.canCreateLibrary': rules.canCreateLibrary,
|
||||
'app.areTagsEnabled': rules.areTagsEnabled,
|
||||
'app.areCategoriesEnabled': rules.areCategoriesEnabled
|
||||
});
|
||||
|
Reference in New Issue
Block a user