mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-07-24 17:31:52 +00:00
[ACS-6278] - disable manage rules for smart folders (#3518)
This commit is contained in:
@@ -23,7 +23,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { AcaRuleContext } from '@alfresco/aca-shared/rules';
|
import { AcaRuleContext } from '@alfresco/aca-shared/rules';
|
||||||
import { isFolderRulesEnabled, canManageFolderRules } from './folder-rules.rules';
|
import { canManageFolderRules, isFolderRulesEnabled } from './folder-rules.rules';
|
||||||
|
import { NodeEntry } from '@alfresco/js-api';
|
||||||
|
|
||||||
describe('Folder Rules Visibility Rules', () => {
|
describe('Folder Rules Visibility Rules', () => {
|
||||||
describe('isFolderRulesEnabled', () => {
|
describe('isFolderRulesEnabled', () => {
|
||||||
@@ -81,5 +82,12 @@ describe('Folder Rules Visibility Rules', () => {
|
|||||||
const result = canManageFolderRules(context);
|
const result = canManageFolderRules(context);
|
||||||
expect(result).toEqual(false);
|
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,10 +22,10 @@
|
|||||||
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
* from Hyland Software. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import { AcaRuleContext, hasFolderSelected, canEditFolder, isNotFavorites } 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 isFolderRulesEnabled = (context: AcaRuleContext) => context.appConfig.get<boolean>('plugins.folderRules', false);
|
||||||
export const isFolderRulesAllowed = (context: AcaRuleContext) =>
|
export const isFolderRulesAllowed = (context: AcaRuleContext) =>
|
||||||
isFolderRulesEnabled(context) && canEditFolder(context) && hasFolderSelected(context) && isNotFavorites(context);
|
isFolderRulesEnabled(context) && canEditFolder(context) && hasFolderSelected(context) && isNotFavorites(context) && !isSmartFolder(context);
|
||||||
|
|
||||||
export const canManageFolderRules = (context: AcaRuleContext): boolean => isFolderRulesAllowed(context);
|
export const canManageFolderRules = (context: AcaRuleContext): boolean => isFolderRulesAllowed(context);
|
||||||
|
@@ -23,9 +23,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import * as app from './app.rules';
|
import * as app from './app.rules';
|
||||||
|
import { getFileExtension } from './app.rules';
|
||||||
import { TestRuleContext } from './test-rule-context';
|
import { TestRuleContext } from './test-rule-context';
|
||||||
import { NodeEntry, RepositoryInfo } from '@alfresco/js-api';
|
import { NodeEntry, RepositoryInfo } from '@alfresco/js-api';
|
||||||
import { getFileExtension } from './app.rules';
|
|
||||||
|
|
||||||
describe('app.evaluators', () => {
|
describe('app.evaluators', () => {
|
||||||
describe('getFileExtension', () => {
|
describe('getFileExtension', () => {
|
||||||
@@ -825,12 +825,6 @@ describe('app.evaluators', () => {
|
|||||||
expect(app.canEditAspects(context)).toBe(false);
|
expect(app.canEditAspects(context)).toBe(false);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return false if the selected node is a smart folder', () => {
|
|
||||||
context.selection.first = { entry: { aspectNames: ['smf:customConfigSmartFolder'], isFolder: true } } as NodeEntry;
|
|
||||||
|
|
||||||
expect(app.canEditAspects(context)).toBe(false);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('should return true if all conditions are met', () => {
|
it('should return true if all conditions are met', () => {
|
||||||
expect(app.canEditAspects(context)).toBe(true);
|
expect(app.canEditAspects(context)).toBe(true);
|
||||||
});
|
});
|
||||||
|
@@ -495,8 +495,7 @@ export const canEditAspects = (context: RuleContext): boolean =>
|
|||||||
canUpdateSelectedNode(context),
|
canUpdateSelectedNode(context),
|
||||||
!isWriteLocked(context),
|
!isWriteLocked(context),
|
||||||
navigation.isNotTrashcan(context),
|
navigation.isNotTrashcan(context),
|
||||||
repository.isMajorVersionAvailable(context, '7'),
|
repository.isMajorVersionAvailable(context, '7')
|
||||||
!isSmartFolder(context)
|
|
||||||
].every(Boolean);
|
].every(Boolean);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -626,7 +625,7 @@ export function canOpenWithOffice(context: AcaRuleContext): boolean {
|
|||||||
return context.permissions.check(file, ['update']);
|
return context.permissions.check(file, ['update']);
|
||||||
}
|
}
|
||||||
|
|
||||||
function isSmartFolder(context: RuleContext): boolean {
|
export function isSmartFolder(context: RuleContext): boolean {
|
||||||
if (!context.selection?.isEmpty) {
|
if (!context.selection?.isEmpty) {
|
||||||
const node = context.selection.first;
|
const node = context.selection.first;
|
||||||
if (!node?.entry.isFolder) {
|
if (!node?.entry.isFolder) {
|
||||||
|
Reference in New Issue
Block a user