mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-30 20:55:42 +00:00 
			
		
		
		
	Merge pull request #1159 from eeintech/roles_overview
Display permission levels for each ruleset in Group admin list view
This commit is contained in:
		| @@ -87,6 +87,64 @@ class RoleGroupAdmin(admin.ModelAdmin): | |||||||
|         RuleSetInline, |         RuleSetInline, | ||||||
|     ] |     ] | ||||||
|  |  | ||||||
|  |     list_display = ('name', 'admin', 'part', 'stock', 'build', 'purchase_order', 'sales_order') | ||||||
|  |  | ||||||
|  |     def get_rule_set(self, obj, rule_set_type): | ||||||
|  |         ''' Return list of permissions for the given ruleset ''' | ||||||
|  |  | ||||||
|  |         # Get all rulesets associated to object | ||||||
|  |         rule_sets = RuleSet.objects.filter(group=obj.pk) | ||||||
|  |  | ||||||
|  |         # Select ruleset based on type | ||||||
|  |         for rule_set in rule_sets: | ||||||
|  |             if rule_set.name == rule_set_type: | ||||||
|  |                 break | ||||||
|  |  | ||||||
|  |         def append_permission_level(permission_level, next_level): | ||||||
|  |             if not permission_level: | ||||||
|  |                 return next_level | ||||||
|  |  | ||||||
|  |             if permission_level[:-1].endswith('|'): | ||||||
|  |                 permission_level += next_level | ||||||
|  |             else: | ||||||
|  |                 permission_level += ' | ' + next_level | ||||||
|  |  | ||||||
|  |             return permission_level | ||||||
|  |  | ||||||
|  |         permission_level = '' | ||||||
|  |  | ||||||
|  |         if rule_set.can_view: | ||||||
|  |             permission_level = append_permission_level(permission_level, 'V') | ||||||
|  |  | ||||||
|  |         if rule_set.can_add: | ||||||
|  |             permission_level = append_permission_level(permission_level, 'A') | ||||||
|  |  | ||||||
|  |         if rule_set.can_change: | ||||||
|  |             permission_level = append_permission_level(permission_level, 'C') | ||||||
|  |  | ||||||
|  |         if rule_set.can_delete: | ||||||
|  |             permission_level = append_permission_level(permission_level, 'D') | ||||||
|  |          | ||||||
|  |         return permission_level | ||||||
|  |  | ||||||
|  |     def admin(self, obj): | ||||||
|  |         return self.get_rule_set(obj, 'admin') | ||||||
|  |  | ||||||
|  |     def part(self, obj): | ||||||
|  |         return self.get_rule_set(obj, 'part') | ||||||
|  |  | ||||||
|  |     def stock(self, obj): | ||||||
|  |         return self.get_rule_set(obj, 'stock') | ||||||
|  |  | ||||||
|  |     def build(self, obj): | ||||||
|  |         return self.get_rule_set(obj, 'build') | ||||||
|  |  | ||||||
|  |     def purchase_order(self, obj): | ||||||
|  |         return self.get_rule_set(obj, 'purchase_order') | ||||||
|  |  | ||||||
|  |     def sales_order(self, obj): | ||||||
|  |         return self.get_rule_set(obj, 'sales_order') | ||||||
|  |  | ||||||
|     def get_formsets_with_inlines(self, request, obj=None): |     def get_formsets_with_inlines(self, request, obj=None): | ||||||
|         for inline in self.get_inline_instances(request, obj): |         for inline in self.get_inline_instances(request, obj): | ||||||
|             # Hide RuleSetInline in the 'Add role' view |             # Hide RuleSetInline in the 'Add role' view | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user