luchob/softuni-feb2023

trying to fix some issues

Closed this issue · 2 comments

Здравей Лъчо,
Не мога да намеря правилният път за разрешаването на някои неща в проекта. Голяма каша, не съм рефракторирал още за да добие приличен вид. Ще се радвам, ако можеш да ми дадеш някакви насоки, ако не може решение на следните неща:

  1. Page “my-pets” искам да бъде видима само за логнатият нормален юзер, да не се вижда от модератори и админи. Какво ли не правих и въртях и не можах да стигна до решение.
  2. На page “price-list” не мога да си заредя с fetch цените по манипулации през бутона. Гледах видеото и ползвах стъпките, които показа, но не става, имам съмнение, че бъркам с js т.к. го знам като basics само.
  3. Не мога да разреша как да зареждам в базата новите pets. Метода ми .addPet в PetService явно не работи.

Link : https://github.com/PlamenPeev/adorablePet
Би трябвало да имаш достъп, ако съм уцелил настройките.
Благодаря предварително!

Здравей!

Ще се опитам да помогна по точките:

  1. Ако действително искаш това нещо, то трябва нормалния юзър да има някаква роля, която админа няма.

Например админа може да има роли ADMIN, MODERATOR.
Нормалния юзър - USER.

И my-pets ще е видима само за юзъри с роля `USER, между които няма да е админа.

  1. Тук въобще не си стигнал до js :-) Линка на скрипта е грешен в thymeleaf темплейта и js-a не се зарежда в браузъра, и нищо не става. Опитай:
    <script th:src="@{/js/price-list.js}"></script>

След това използвай Console/Network табовете на developer tools-а на браузъра за да се ориентираш какво става. Тези грешки се виждат там веднага.

  1. Не се извиква метода на сървиса ти изобщо, тъй като ДТО-то винаги е невалидно. Заради това:
    @NotNull
    private UserEntity owner;

Ако искаш го махни инжектирай детайлите на юзъра като аргумент на контролера:

    public String addConfirm(@Valid @ModelAttribute("petAddDTO")
                             PetAddDTO petAddDTO,
                             BindingResult bindingResult,
                             RedirectAttributes redirectAttributes,
                            @AuthenticationPrincipal UserDetails loggedUser) 

Дано съм помогнал!

Поздрави,
Л.

Много благодаря!