def has_permission(permission, username=None, user=None, obj=None): """Check whether this user has the given permssion. Arguments ``username`` and ``user`` are mutually exclusive. You can either set one or the other, but not both. if ``username`` and ``user`` are not given, the authenticated member will be used. :param permission: The permission you wish to check :type permission: string :param username: Username of the user for which you want to check the permission. :type username: string :param user: User object for which you want to check the permission. :type user: MemberData object :param obj: If obj is set then check the permission on this context. If obj is not given, the site root will be used. :type obj: content object :raises: InvalidParameterError :returns: True if the user has the permission, False otherwise. :rtype: bool """ if obj is None: obj = portal.get() if username is None and user is None: context = _nop_context_manager() else: context = env.adopt_user(username, user) with context: portal_membership = portal.get_tool('portal_membership') return bool(portal_membership.checkPermission(permission, obj))
def get_permissions(username=None, user=None, obj=None): """Get user's site-wide or local permissions. Arguments ``username`` and ``user`` are mutually exclusive. You can either set one or the other, but not both. if ``username`` and ``user`` are not given, the authenticated member will be used. :param username: Username of the user for which you want to check the permissions. :type username: string :param user: User object for which you want to check the permissions. :type user: MemberData object :param obj: If obj is set then check the permissions on this context. If obj is not given, the site root will be used. :type obj: content object :raises: InvalidParameterError :Example: :ref:`user_get_permissions_example` """ if obj is None: obj = portal.get() if username is None and user is None: context = _nop_context_manager() else: context = env.adopt_user(username, user) with context: sm = getSecurityManager() pms = (record[0] for record in getPermissions()) result = {pm: bool(sm.checkPermission(pm, obj)) for pm in pms} return result
def has_permission(permission, username=None, user=None, obj=None): """Check whether this user has the given permission. Arguments ``username`` and ``user`` are mutually exclusive. You can either set one or the other, but not both. if ``username`` and ``user`` are not given, the authenticated member will be used. :param permission: The permission you wish to check :type permission: string :param username: Username of the user for which you want to check the permission. :type username: string :param user: User object for which you want to check the permission. :type user: MemberData object :param obj: If obj is set then check the permission on this context. If obj is not given, the site root will be used. :type obj: content object :raises: InvalidParameterError :returns: True if the user has the permission, False otherwise. :rtype: bool """ if obj is None: obj = portal.get() if username is None and user is None: context = _nop_context_manager() else: context = env.adopt_user(username, user) with context: return bool(getSecurityManager().checkPermission(permission, obj))
def get_permissions(username=None, user=None, obj=None): """Get user's site-wide or local permissions. Arguments ``username`` and ``user`` are mutually exclusive. You can either set one or the other, but not both. if ``username`` and ``user`` are not given, the authenticated member will be used. :param username: Username of the user for which you want to check the permissions. :type username: string :param user: User object for which you want to check the permissions. :type user: MemberData object :param obj: If obj is set then check the permissions on this context. If obj is not given, the site root will be used. :type obj: content object :raises: InvalidParameterError :Example: :ref:`user_get_permissions_example` """ if obj is None: obj = portal.get() if username is None and user is None: context = _nop_context_manager() else: context = env.adopt_user(username, user) with context: adopted_user = get_current() permissions = (p[0] for p in getPermissions()) d = {} for permission in permissions: d[permission] = bool(adopted_user.checkPermission(permission, obj)) return d