| 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 | Откако ќе заврши оваа постапка, најавениот корисник ќе има пристап и до ресурсите на профилот со кој е поврзан. |