Interface UserRepository

    • Method Detail

      • findIdByLoginForUpdate

        @Query(value="SELECT id FROM users WHERE users.login = :username FOR UPDATE",
               nativeQuery=true)
        java.util.Optional<java.lang.Long> findIdByLoginForUpdate​(@Param("username")
                                                                  java.lang.String login)
      • findByEmail

        java.util.Optional<User> findByEmail​(java.lang.String email)
      • findByLogin

        java.util.Optional<User> findByLogin​(java.lang.String login)
        Parameters:
        login - user login for search
        Returns:
        Optional of User
      • findAllByEmailIn

        java.util.List<User> findAllByEmailIn​(java.util.Collection<java.lang.String> mails)
      • findAllByLoginIn

        java.util.List<User> findAllByLoginIn​(java.util.Set<java.lang.String> loginSet)
      • findAllByRole

        java.util.List<User> findAllByRole​(UserRole role)
      • findAllByUserTypeAndExpired

        @Query("SELECT u FROM User u WHERE u.userType = :userType AND u.isExpired = :isExpired")
        org.springframework.data.domain.Page<User> findAllByUserTypeAndExpired​(@Param("userType")
                                                                               UserType userType,
                                                                               @Param("isExpired")
                                                                               boolean isExpired,
                                                                               org.springframework.data.domain.Pageable pageable)
      • expireUsersLoggedOlderThan

        @Modifying
        @Query(value="UPDATE users SET expired = TRUE WHERE CAST(metadata-> \'metadata\' ->> \'last_login\' AS DOUBLE PRECISION) < (extract(EPOCH FROM CAST (:lastLogin AS TIMESTAMP)) * 1000);",
               nativeQuery=true)
        void expireUsersLoggedOlderThan​(@Param("lastLogin")
                                        java.time.LocalDateTime lastLogin)
      • updateLastLoginDate

        @Modifying
        @Query(value="UPDATE users SET metadata = jsonb_set(metadata, \'{metadata,last_login}\', to_jsonb(extract(EPOCH FROM CAST (:lastLogin AS TIMESTAMP)) * 1000), TRUE ) WHERE login = :username",
               nativeQuery=true)
        void updateLastLoginDate​(@Param("lastLogin")
                                 java.time.LocalDateTime lastLogin,
                                 @Param("username")
                                 java.lang.String username)
        Updates user's last login value
        Parameters:
        lastLogin - Last login date
        username - User
      • findNamesByProject

        @Query(value="SELECT u.login FROM users u JOIN project_user pu ON u.id = pu.user_id WHERE pu.project_id = :projectId",
               nativeQuery=true)
        java.util.List<java.lang.String> findNamesByProject​(@Param("projectId")
                                                            java.lang.Long projectId)
      • findNamesByProject

        @Query(value="SELECT u.login FROM users u JOIN project_user pu ON u.id = pu.user_id WHERE pu.project_id = :projectId AND u.login LIKE %:term%",
               nativeQuery=true)
        java.util.List<java.lang.String> findNamesByProject​(@Param("projectId")
                                                            java.lang.Long projectId,
                                                            @Param("term")
                                                            java.lang.String term)
      • findLoginById

        @Query(value="SELECT users.login FROM users WHERE users.id = :id",
               nativeQuery=true)
        java.util.Optional<java.lang.String> findLoginById​(@Param("id")
                                                           java.lang.Long id)