def grant_permission(session: Session, group_id: int, permission_id: int, argument: str = "") -> None: """Grant a permission to this group. This will fail if the (permission, argument) has already been granted to this group. Args: session: Database session group_id: ID of group to which to grant the permission permission_id: ID of permission to grant argument: Must match constants.ARGUMENT_VALIDATION Throws: AssertError if argument does not match ARGUMENT_VALIDATION regex """ assert re.match(ARGUMENT_VALIDATION + r"$", argument), "Invalid permission argument" mapping = PermissionMap(permission_id=permission_id, group_id=group_id, argument=argument) mapping.add(session) Counter.incr(session, "updates") session.commit()
def grant_permission_to_group(self, permission, argument, group): # type: (str, str, str) -> None self.create_group(group) self.create_permission(permission) permission_obj = Permission.get(self.session, name=permission) assert permission_obj group_obj = Group.get(self.session, name=group) assert group_obj grant = PermissionMap(permission_id=permission_obj.id, group_id=group_obj.id, argument=argument) grant.add(self.session)
def grant_permission_to_group(self, permission, argument, group): # type: (str, str, str) -> None sql_group = Group.get(self.session, name=group) if not sql_group: raise GroupNotFoundException(group) sql_permission = Permission.get(self.session, name=permission) if not sql_permission: raise PermissionNotFoundException(permission) mapping = PermissionMap( permission_id=sql_permission.id, group_id=sql_group.id, argument=argument ) mapping.add(self.session)
def grant_permission(session, group_id, permission_id, argument=''): """ Grant a permission to this group. This will fail if the (permission, argument) has already been granted to this group. Args: session(models.base.session.Session): database session permission(Permission): a Permission object being granted argument(str): must match constants.ARGUMENT_VALIDATION Throws: AssertError if argument does not match ARGUMENT_VALIDATION regex """ assert re.match(ARGUMENT_VALIDATION, argument), 'Permission argument does not match regex.' mapping = PermissionMap(permission_id=permission_id, group_id=group_id, argument=argument) mapping.add(session) Counter.incr(session, "updates") session.commit()