33 Commits

Author SHA1 Message Date
Gabriele C.
90be2af901 Update usage of deprecated org.junit.Assert.assertThat 2024-04-26 02:06:39 +02:00
ljacqu
f431325516 #1650 Fix users with capitals not having their session saved 2018-12-04 19:04:25 +01:00
ljacqu
2bf78dd186 Merge branch 'master' of https://github.com/AuthMe/AuthMeReloaded into 1141-optional-additional-2fa-auth 2018-04-02 23:44:19 +02:00
ljacqu
4595a14191 #1539 Add support for columns that are not on player auth (is_logged, has_session) 2018-03-25 11:52:40 +02:00
ljacqu
5a58f2c44f #1539 Integrate data source columns library
- Create wrapper around SqlColumnsHandler for AuthMe-specific behavior
- Integrate columns handler into first SQLite and MySQL method implementations
2018-03-24 12:24:43 +01:00
ljacqu
9954c82cb6 #1141 Add TOTP key field to database and PlayerAuth
- Add new field for storing TOTP key
- Implement data source methods for manipulation of its value
2018-03-05 19:50:58 +01:00
ljacqu
50dbbb8d87 #1254 Create command to see recently logged in players
- Create datasource method to fetch most recent players by last login date
- Add command to view last logged in players
2017-11-28 21:07:10 +01:00
ljacqu
90073ef95d Merge branch 'master' of https://github.com/AuthMe/AuthMeReloaded into 792-registration-date-and-ip
Conflicts:
	src/main/java/fr/xephi/authme/command/executable/authme/RegisterAdminCommand.java
	src/main/java/fr/xephi/authme/datasource/Columns.java
	src/main/java/fr/xephi/authme/datasource/SQLite.java
	src/main/java/fr/xephi/authme/process/join/AsynchronousJoin.java
	src/main/java/fr/xephi/authme/service/SessionService.java
	src/main/java/fr/xephi/authme/settings/properties/DatabaseSettings.java
	src/test/java/fr/xephi/authme/service/SessionServiceTest.java
	src/test/resources/fr/xephi/authme/datasource/sql-initialize.sql
2017-10-15 23:45:41 +02:00
Gabriele C
22e95493de #1031 Introduce hasSession field in datasource (#1351)
* Introduce hasSession field in datasource

That makes isLogged more consistent as it will be '1' only when the player is online.

* Fixes

* Fix unit testing

* Update config doc

* Create SessionService

* Create test for SessionService, avoid DB operations if sessions are disabled

* Cleanup: remove outdated warning for session timeout = 0
- Remove outdated warning
- Encapsulate session enabled check in SessionService

* Fix failing SessionServiceTest, add data source integration tests for session methods
2017-10-15 18:32:51 +02:00
ljacqu
ea58e20c3d #792 Include registration date into purging logic
- Take MAX(reg_date, login_date) as timestamp to compare against
- Remove the second "all" parameter to include entries with 0 registration date -> we expect registration date to always be set to the current date, so the parameter becomes obsolete
2017-10-15 18:29:01 +02:00
ljacqu
1df5308e56 #792 #814 Create command to remove NOT NULL constraints
- Create command under /authme debug that allows to change the 'nullable' status of MySQL columns (currently last date and email only)
   - We need to offer a default value for forum integrations that have a NOT NULL email column. Offering a command avoids us from force-migrating existing databases while still offering migrations in both directions
- Change in default value handling: lack of values are not handled by setting default values to the PlayerAuth anymore, and reading a default value from the database into a PlayerAuth will be translated into null by the PlayerAuth builder
- When a new database is created, email and lastlogin are now nullable and lack a default a value

Open points:
- Finish MySqlDefaultChangerTest
- Revise purging logic (#792)
- Allow to have more columns nullable (#814)
2017-10-15 12:56:13 +02:00
ljacqu
52d6476058 #792 Add columns for registration IP and registration date
- Add columns for reg date and IP
- Rename "ip" to "last IP"
2017-10-14 17:37:34 +02:00
ljacqu
e56a3c0ab6 #815 Save yaw & pitch for last login in SQL data sources 2017-04-22 13:30:03 +02:00
ljacqu
04ca36fe53 Use more specific query to get logged in players without email
- Reduces the amount of data returned from the DB and the work required to build objects
2017-04-18 22:30:54 +02:00
ljacqu
b99cc3bada #1127 Create DataSource#getEmail 2017-04-18 21:07:31 +02:00
Gabriele C
58c42cf300 Package cleanup
- authme.cache to authme.data
- Rename PlayerData to LimboPlayer to match with LimboCache
- Move authme.converter to authme.datasource.converter
- Split output package into output and message
2016-10-05 21:10:40 +02:00
ljacqu
ff9f50f63f #886 Do not include players with lastlogin = 0 in autopurge or default purge 2016-09-18 16:49:34 +02:00
ljacqu
405bd563d8 #950 Add unregister by name to API
- Add method to API
- Ensure that unregistering in datasource is case-insensitive
2016-09-18 14:46:02 +02:00
ljacqu
e30d7220bd #472 Store recovery codes in memory instead of in data source 2016-09-16 21:42:16 +02:00
ljacqu
c5f5c0d2fd #472 Require recovery code before resetting password
- /email recovery generates recovery code and resets password only if recovery code is also given
- Change data source method to return email and recovery code
2016-09-10 14:27:26 +02:00
ljacqu
0aac8928af #472 Create recovery code/expiration columns and methods in data source 2016-09-10 09:13:17 +02:00
ljacqu
57f90fe410 #784 Make DataSource#purgeRecords case-insensitive 2016-07-18 21:29:05 +02:00
ljacqu
dccbd5262f Don't update IP twice
- IP is updated in datasource#updateSession after successful login
- Remove no longer used DataSource#updateIp
2016-07-12 21:45:05 +02:00
ljacqu
22911a0bb9 Remove duplicate column initialization code, add datasource integration tests
- Drop initialization of all columns on table create in favor of checking each column individually. This is slower but guarantees that each column is only defined once in the code. Columns are only created once so having clean code outweighs performance.
- Write more datasource integration tests
2016-07-02 19:16:26 +02:00
ljacqu
3629c51fc1 #674 PurgeService: Always register if purging, reduce code duplication
- Rename autoPurging to isPurging: we should always register if a purge task is in progress (regardless if autopurge or not) and deny any new requests
- Reduce the same logic being coded multiple times by calling through the methods
- DataSource: remove purgeBanned in favor of purgeRecords, both do exactly the same thing
2016-06-16 22:52:11 +02:00
games647
b1957c9812 Do not lookup twice for banned players 2016-05-09 21:51:21 +02:00
ljacqu
3bb7ff2b85 #653 Empty salt column causes error when retrieving password
- Handle potentially empty salt column in MySQL and SQLite
- Create unit tests reflecting these cases
2016-04-14 11:48:24 +02:00
ljacqu
b6ccb3e632 #567 Add/change email should be aware of account threshold 2016-04-03 14:24:12 +02:00
ljacqu
5fce849ce7 Minor - Add datasource test, minor code householding 2016-02-27 21:11:35 +01:00
ljacqu
1b818bd833 #457 Improve ForceFlatToSqlite conversion
- Change ForceFlatToSqlite converter to use a generic datasource destination (i.e. can be used for Flat2MySQL later)
- Add tests, including for FlatFile
- Check that user is not present in destination datasource before adding
- Persist last location from flatfile as well
2016-02-27 11:24:47 +01:00
ljacqu
27b1fa770f #392 Add datasource integration tests 2016-02-26 22:12:16 +01:00
ljacqu
69092e9a9c #392 Add datasource integration tests 2016-02-24 21:50:40 +01:00
ljacqu
5e16ca1490 #392 Create integration test for MySQL
- Relocate tests to AbstractDataSourceIntegrationTest to reuse tests for SQLite and MySQL
- Add H2 driver and create test class for MySQL
2016-02-22 21:52:10 +01:00