View Javadoc
1   /*
2    * Copyright 2018-2022 Medical Information Systems Research Group (https://medical.zcu.cz),
3    * Department of Computer Science and Engineering, University of West Bohemia.
4    * Address: Univerzitni 8, 306 14 Plzen, Czech Republic.
5    *
6    * Author Petr Vcelak (vcelak@kiv.zcu.cz).
7    *
8    * This file is part of MRECore project.
9    *
10   * MRECore is free software: you can redistribute it and/or modify
11   * it under the terms of the GNU General Public License as published by
12   * the Free Software Foundation, either version 3 of the License.
13   *
14   * MRECore is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17   * GNU General Public License for more details.
18   *
19   * You should have received a copy of the GNU General Public License
20   * along with MRECore. If not, see <http://www.gnu.org/licenses/>.
21   */
22  package cz.zcu.mre.controller;
23  
24  import cz.zcu.mre.data.account.Account;
25  import cz.zcu.mre.service.account.AccountService;
26  import java.security.Principal;
27  import org.springframework.beans.factory.annotation.Autowired;
28  import org.springframework.http.HttpStatus;
29  import org.springframework.security.access.annotation.Secured;
30  import org.springframework.stereotype.Controller;
31  import org.springframework.util.Assert;
32  import org.springframework.web.bind.annotation.RequestMapping;
33  import org.springframework.web.bind.annotation.RequestMethod;
34  import org.springframework.web.bind.annotation.ResponseBody;
35  import org.springframework.web.bind.annotation.ResponseStatus;
36  
37  /**
38   * 
39   * @author Petr Vcelak (vcelak@kiv.zcu.cz)
40   */
41  @Controller
42  class AccountController {
43  
44      private final AccountService accountService;
45  
46      @Autowired
47      public AccountController(AccountService accountService) {
48          this.accountService = accountService;
49      }
50  
51      @RequestMapping(value = "account/current", method = RequestMethod.GET)
52      @ResponseStatus(value = HttpStatus.OK)
53      @ResponseBody
54      @Secured({"ROLE_USER", "ROLE_ADMIN"})
55      public Account currentAccount(Principal principal) {
56          Assert.notNull(principal, "Null principal not allowed.");
57          return accountService.findOneByEmail(principal.getName());
58      }
59  
60  //    @RequestMapping(value = "account/{id}", method = RequestMethod.GET)
61  //    @ResponseStatus(value = HttpStatus.OK)
62  //    @ResponseBody
63  //    @Secured("ROLE_ADMIN")
64  //    public Account account(@PathVariable("id") Long id) {
65  //        return accountRepository.findOne(id);
66  //    }
67  }