mirror of
				https://github.com/strapi/strapi.git
				synced 2025-11-03 19:36:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			26 lines
		
	
	
		
			674 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			674 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'use strict';
 | 
						|
 | 
						|
const {
 | 
						|
  policy: { createPolicy },
 | 
						|
} = require('@strapi/utils');
 | 
						|
const { validateHasPermissionsInput } = require('../validation/policies/hasPermissions');
 | 
						|
 | 
						|
module.exports = createPolicy({
 | 
						|
  name: 'plugin::content-manager.hasPermissions',
 | 
						|
  validator: validateHasPermissionsInput,
 | 
						|
  handler(ctx, config = {}) {
 | 
						|
    const { actions = [], hasAtLeastOne = false } = config;
 | 
						|
 | 
						|
    const {
 | 
						|
      state: { userAbility },
 | 
						|
      params: { model },
 | 
						|
    } = ctx;
 | 
						|
 | 
						|
    const isAuthorized = hasAtLeastOne
 | 
						|
      ? actions.some((action) => userAbility.can(action, model))
 | 
						|
      : actions.every((action) => userAbility.can(action, model));
 | 
						|
 | 
						|
    return isAuthorized;
 | 
						|
  },
 | 
						|
});
 |