[SECARSP-111] +Auth API [SECARSP-115 +Get Devices]
[platform/core/security/suspicious-activity-monitor.git] / server / src / main / java / com / samsung / samserver / repository / UserRepository.java
1 /*
2  * In Samsung Ukraine R&D Center (SRK under a contract between)
3  * LLC "Samsung Electronics Co", Ltd (Seoul, Republic of Korea)
4  * Copyright (C) 2018 Samsung Electronics Co., Ltd. All rights reserved.
5  */
6 package com.samsung.samserver.repository;
7
8 import com.samsung.samserver.domain.User;
9 import org.springframework.data.domain.Page;
10 import org.springframework.data.domain.Pageable;
11 import org.springframework.data.jpa.repository.EntityGraph;
12 import org.springframework.data.jpa.repository.JpaRepository;
13 import org.springframework.stereotype.Repository;
14 import java.util.List;
15 import java.util.Optional;
16 import java.time.Instant;
17
18 /**
19  * Spring Data JPA repository for the User entity.
20  */
21 @Repository
22 public interface UserRepository extends JpaRepository<User, Long> {
23
24     Optional<User> findOneByActivationKey(String activationKey);
25
26     List<User> findAllByActivatedIsFalseAndCreatedDateBefore(Instant dateTime);
27
28     Optional<User> findOneByResetKey(String resetKey);
29
30     Optional<User> findOneByEmailIgnoreCase(String email);
31
32     Optional<User> findOneByLogin(String login);
33
34     @EntityGraph(attributePaths = "authorities")
35     Optional<User> findOneWithAuthoritiesById(Long id);
36
37     @EntityGraph(attributePaths = "authorities")
38     Optional<User> findOneWithAuthoritiesByLogin(String login);
39
40     @EntityGraph(attributePaths = "authorities")
41     Optional<User> findOneWithAuthoritiesByEmail(String email);
42
43     Page<User> findAllByLoginNot(Pageable pageable, String login);
44 }