mirror of
				https://github.com/strapi/strapi.git
				synced 2025-10-31 09:56:44 +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;
 | |
|   },
 | |
| });
 | 
