def check_permission(self, permission_enum, vm_object=None, user_object=None): """Check that the user has a given permission, either globally through MCVirt or for a given VM. """ if 'STARTUP_PERIOD' in dir(Pyro4.current_context ) and Pyro4.current_context.STARTUP_PERIOD: return True if ('INTERNAL_REQUEST' in dir(Pyro4.current_context) and Pyro4.current_context.INTERNAL_REQUEST): return True # If the user is a superuser, all permissions are attached to the user if self.is_superuser(): return True if user_object is None: user_object = self._get_registered_object( 'mcvirt_session').get_current_user_object() # Determine if the type of user has the permissions if permission_enum in user_object.PERMISSIONS: return True # Check the global permissions configuration to determine # if the user has been granted the permission mcvirt_config = MCVirtConfig() mcvirt_permissions = mcvirt_config.getPermissionConfig() if self.check_permission_in_config(mcvirt_permissions, user_object.get_username(), permission_enum): return True # If a vm_object has been passed, check the VM # configuration file for the required permissions if vm_object: vm_config_object = vm_object.get_config_object() vm_config = vm_config_object.getPermissionConfig() # Determine if the user has been granted the required permissions # in the VM configuration file if (self.check_permission_in_config(vm_config, user_object.get_username(), permission_enum)): return True return False
def get_users_in_permission_group(self, permission_group, vm_object=None): """Obtain a list of users in a given group, either in the global permissions or for a specific VM. """ if vm_object: permission_config = vm_object.get_config_object( ).getPermissionConfig() else: mcvirt_config = MCVirtConfig() permission_config = mcvirt_config.getPermissionConfig() if permission_group in permission_config.keys(): return permission_config[permission_group] else: raise InvalidPermissionGroupException( 'Permission group \'%s\' does not exist' % permission_group)
def get_users_in_permission_group(self, permission_group, vm_object=None): """Obtain a list of users in a given group, either in the global permissions or for a specific VM. """ if vm_object: permission_config = vm_object.get_config_object().getPermissionConfig() else: mcvirt_config = MCVirtConfig() permission_config = mcvirt_config.getPermissionConfig() if permission_group in permission_config.keys(): return permission_config[permission_group] else: raise InvalidPermissionGroupException( 'Permission group \'%s\' does not exist' % permission_group )
def check_permission(self, permission_enum, vm_object=None, user_object=None): """Check that the user has a given permission, either globally through MCVirt or for a given VM. """ if Pyro4.current_context.STARTUP_PERIOD: return True # If the user is a superuser, all permissions are attached to the user if self.is_superuser(): return True if user_object is None: user_object = self._get_registered_object('mcvirt_session').get_current_user_object() # Determine if the type of user has the permissions if permission_enum in user_object.PERMISSIONS: return True # Check the global permissions configuration to determine # if the user has been granted the permission mcvirt_config = MCVirtConfig() mcvirt_permissions = mcvirt_config.getPermissionConfig() if self.check_permission_in_config(mcvirt_permissions, user_object.get_username(), permission_enum): return True # If a vm_object has been passed, check the VM # configuration file for the required permissions if vm_object: vm_config_object = vm_object.get_config_object() vm_config = vm_config_object.getPermissionConfig() # Determine if the user has been granted the required permissions # in the VM configuration file if (self.check_permission_in_config(vm_config, user_object.get_username(), permission_enum)): return True return False