luchob/softuni-sep-2023

Messaging функционалност в проекта.

Closed this issue · 4 comments

Здрасти, Лъчо!

Проекта ми е свързан с публикуване на обяви по които може да се кандидатства и бих искал да имплементирам възможността за комуникация между автора на обявата и одобрения кандидат реферираща всяка обява.
Въпроса ми е има ли някаква възможност при кофигурацията на Сприн секюрити да се настрои ендпойта ( в който при всички случаи ще има pathvariable с id-to на обявата) да бъде достъпен само от двете инстанции на UserEntity-тата?
Или тази валидация се прави при GET-заявката на съответното URL, където да проверя примерно ако направя CommunicationEntity (с полета за автор, одобрен кандидат, проект и съобщения) да видя дали принципала има достъп до тази комуникация и ако не - да хвърля грешка съптветно?

Дано ми схващаш идеята. :D
Прилагам линк към проекта ако можеш да се ориентираш по-добре -
https://github.com/rado-bochukov/archviz-arena

Здрасти, Радо!

Амиии... дано я схващам идеята. Мисля, че за този случай може би би било удачно да използваш @PreAuthorize анотацията. Напомням, правихме демо как се ползва при изтриване на оферта в мобилето където една оферта можеше да се трие от автора и, но и от администратор. Прилагам пример:

@PreAuthorize("@offerServiceImpl.isOwner(#uuid, #principal.username)")
  @DeleteMapping("/{uuid}")
  public String delete(@PathVariable("uuid") UUID uuid,
      @AuthenticationPrincipal UserDetails principal) {

    offerService.deleteOffer(uuid);

    return "redirect:/offers/all";
  }

Мислиш ли, че този подход ще свърше работа за случая ти?

Поздрави,
Л.

Благодаря, ще потърся и прегледам въпросното демо, че основно до сега съм гледал видеа от предишни издания на курса и не съм срещал.

Хубав следобед!

Привет, Лъчо!

Намерих, изгледах и приложих подхода! Получи се супер.
Благодарности!

Супер! Поздрави, Л.