code: def get_mapped_permissions_for(brain_or_object):
      
      obj = api.get_object(brain_or_object)
      mapping = obj.manage_getPermissionMapping()
      return map(lambda item: item["permission_name"], mapping)
docs: Get the mapped permissions for the given object
  
      A mapped permission is one that is used in the object.
  
      Each permission string, e.g. "senaite.core: Field: Edit Analysis Remarks" is
      translated by the function `AccessControl.Permission.pname` to a valid
      attribute name:
  
      >>> from bika.lims.permissions import FieldEditAnalysisResult
      >>> AccessControl.Permission import pname
      >>> pname(FieldEditAnalysisResult)
      _Field__Edit_Result_Permission
  
      This attribute is looked up in the object by `getPermissionMapping`:
  
      >>> from AccessControl.PermissionMapping import getPermissionMapping
      >>> getPermissionMapping(FieldEditAnalysisResult, wrapper)
      ("Manager", "Sampler")
  
      Therefore, only those permissions which have roles mapped on the object
      or by objects within the acquisition chain are considered.
  
      Code extracted from `IRoleManager.manage_getUserRolesAndPermissions`
  
      :param brain_or_object: Catalog brain or object
      :returns: List of permissions