Changes between Version 2 and Version 3 of UseCaseImplementationsFinal


Ignore:
Timestamp:
02/04/24 17:56:22 (10 months ago)
Author:
211012
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • UseCaseImplementationsFinal

    v2 v3  
    224224}}}
    225225=== Поврзува профил
     226[[Image(connect_acc.png)]]
     227Доколку корисникот сака да поврзе негов профил со друг профил регистриран на нашиот систем, тоа може да го направи на оваа страница со коректно внесување на корисничкото име и лозинката. Истите се испраќаат преку POST барање до серверската страна каде контролерот кој ги пречекува го повикува методот во сервисот во кој внесената лозинка, преку PasswordEncoder-от се проверува со хешираната која се чува во базата и доколку се точни ги поврзува профилите. Ова е имплементирано на тој начин што ентитетот User е во M:N релација сам со себе, односно за секој User се чува листа од User - connectedAccounts.
     228{{{#!java
     229    @PostMapping("/users/{id}/connect")
     230    public ResponseEntity<?> connectAccount(@PathVariable Long id,
     231                                            @RequestParam String username,
     232                                            @RequestParam String password)
     233    {
     234        usersManager.connectAccount(id, username, password);
     235        return new ResponseEntity<>(HttpStatus.OK);
     236    }
     237}}}
     238{{{#!java
     239    @Override
     240    public void connectAccount(Long id, String username, String password) {
     241        User u1 = findUserByID(id);
     242        User u2 = (User) loadUserByUsername(username);
     243        if(passwordEncoder.matches(password, u2.getPassword()))
     244        {
     245            u1.addConnectedUser(u2);
     246        }
     247        usersDao.updateUser(u1);
     248    }
     249}}}
     250Откако ќе заврши оваа постапка, најавениот корисник ќе има пристап и до ресурсите на профилот со кој е поврзан.