def validate(self) -> None: exceptions: List[ValidationError] = [] owner_ids: Optional[List[int]] = self._properties.get("owners") slug: Optional[str] = self._properties.get("slug") # Validate/populate model exists self._model = DashboardDAO.find_by_id(self._model_id) if not self._model: raise DashboardNotFoundError() # Check ownership try: check_ownership(self._model) except SupersetSecurityException: raise DashboardForbiddenError() # Validate slug uniqueness if not DashboardDAO.validate_update_slug_uniqueness( self._model_id, slug): exceptions.append(DashboardSlugExistsValidationError()) # Validate/Populate owner if owner_ids is None: owner_ids = [owner.id for owner in self._model.owners] try: owners = populate_owners(self._actor, owner_ids) self._properties["owners"] = owners except ValidationError as ex: exceptions.append(ex) if exceptions: exception = DashboardInvalidError() exception.add_list(exceptions) raise exception
def validate(self) -> None: exceptions: List[ValidationError] = list() owner_ids: Optional[List[int]] = self._properties.get("owners") role_ids: Optional[List[int]] = self._properties.get("roles") slug: str = self._properties.get("slug", "") # Validate slug uniqueness if not DashboardDAO.validate_slug_uniqueness(slug): exceptions.append(DashboardSlugExistsValidationError()) try: owners = self.populate_owners(self._actor, owner_ids) self._properties["owners"] = owners except ValidationError as ex: exceptions.append(ex) if exceptions: exception = DashboardInvalidError() exception.add_list(exceptions) raise exception try: roles = populate_roles(role_ids) self._properties["roles"] = roles except ValidationError as ex: exceptions.append(ex) if exceptions: exception = DashboardInvalidError() exception.add_list(exceptions) raise exception