284 Commits

Author SHA1 Message Date
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
f1bed873d5 Minor - remove code duplication 2017-10-08 01:22:25 +02:00
Gabriele C
e59df84a84 Fix session system (#1337)
* Old session system

* Actually check if sessions are enabled

* Cleanup

* Don't use cached isLogged value
2017-09-30 15:15:25 +02:00
sgdc3
920e65c4f4 Codestyle cleanup 2017-09-27 15:16:33 +02:00
ljacqu
8eceaa8cbb #1255 Simplify MySQL data source extensions
- Mostly oving the logic of getting the ID from the DB to the extensions superclass
2017-07-23 16:38:35 +02:00
ljacqu
cbc794ba20 #1255 Extract forum-specific data source actions into separate extension classes 2017-07-23 14:19:28 +02:00
ljacqu
f88350b06d Fix Checkstyle violations
- Mostly missing Javadoc on large methods
- CommandInitializer: split command building method into multiple methods
2017-07-16 23:07:13 +02:00
DNx
87b9bf140d Add database setting to configure HikariCP 'maxLifetime' #1279 2017-07-12 07:21:05 +07:00
Gabriele C
4e61117ef7 Add xf table prefix to config
#957
2017-07-06 18:46:24 +02:00
Gabriele C
b24dcfed3c Try to fix #1261 2017-07-02 13:21:04 +02:00
Alexandre Vanhecke
a167429fbc perf(datasource): Use try-with-resources when it's possible 2017-05-21 15:13:40 +02:00
ljacqu
e5bfbf6304 #1023 LoginSecurity converter: fix last login conversion, extend test 2017-05-13 09:37:36 +02:00
ljacqu
2021113732 #1023 Create LoginSecurity converter 2017-05-10 19:45:20 +02:00
ljacqu
1f8307c8f6 Fix minor checkstyle issues
- Add JavaDoc where checkstyle expects it
- Fix line too long issues
- ...
2017-05-07 11:59:01 +02:00
ljacqu
b7c35cb3a7 Merge branch 'master' of https://github.com/AuthMe/AuthMeReloaded into explicit-getters-from-db 2017-04-29 08:19:30 +02:00
ljacqu
82d74ca0a7 Move close methods out of sql datasource utils class
As noticed by @Gnat008
- We need two different implementations for MySQL and SQLite because SQLite uses an older version where #isClosed is not implemented
2017-04-29 08:18:43 +02:00
ljacqu
d0dbc14358 Minor - fix some small todo's 2017-04-23 11:02:43 +02:00
ljacqu
e56a3c0ab6 #815 Save yaw & pitch for last login in SQL data sources 2017-04-22 13:30:03 +02:00
ljacqu
07633a89c8 Create SQL data source utils class
- Extract logic used in SQLite and MySQL for logging and closing SQL objects
    - Decided to leave buildAuthFromResultSet methods individually as this might be more implementation-specific
- Rename DataSource#close to DataSource#closeConnection to fix conflict with static import
2017-04-18 22:55:39 +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
2f7ebc0ecb Remove static PlayerCache#getInstance 2017-04-18 21:57:20 +02:00
ljacqu
b99cc3bada #1127 Create DataSource#getEmail 2017-04-18 21:07:31 +02:00
ljacqu
a764598f88 Adjust repo links in code 2017-03-28 08:11:00 +02:00
ljacqu
32a664ef59 Update checkstyle config and CodeClimate exclusions
- Add new checkstyle checks: require Javadoc on large private methods, default in switch, declaration order & others
- Update path exclusions in CodeClimate config to match newly renamed classes (e.g. PHPBB -> PhpBB)
  - Create consistency check testing that excluded paths exist as classes
- Fix some trivial violations
2017-03-23 10:34:28 +01:00
ljacqu
8f197bbebf #1128 Rename converter classes to start with uppercase letter 2017-03-17 19:28:40 +01:00
ljacqu
8ebb3c6b5a Merge branch 'master' of https://github.com/AuthMe/AuthMeReloaded into 1128-camel-case-rename 2017-03-17 18:50:57 +01:00
ljacqu
731d085ccd #1128 Rename to camel case (PR #235)
* rename classes according to cammel case and make code reflect these updates

* rename according to cammel case

* rename to camel case more accuratley

* rename to camel case try 3; fix Ipb4 java doc

* retry rename camel case

* rename to camel case
2017-03-17 18:49:30 +01:00
Martin
5ca1c17771 Xenforo support
Added in-game xenforo support. User can register/login in-game, in
website only login. Register have issues i will try to fix it.
2017-03-08 01:21:29 +02:00
Martin
6d67b82860 Xenforo
Added Xenforo group
2017-03-06 06:31:51 +02:00
Martin
7f8b31f9d4 Merge remote-tracking branch 'refs/remotes/AuthMe/master' 2017-03-06 06:16:34 +02:00
Martin
648e71cf0f IPB4 Improve
IPB4 prefix, group, lastvisit support added.
2017-03-06 06:11:59 +02:00
ljacqu
8aa573b9ed Minor fixes as found by Checkstyle 2017-03-05 10:58:29 +01:00
ljacqu
009d82c0a9 #1120 Use empty "realname" when converting from flatfile
- FlatFile doesn't store the "realname" - all names are always in all-lowercase. Converting from flatfile to other data source should therefore not take over an auth's realname
- Adjust sample flatfile file to only have all-lowercase usernames
2017-03-04 17:52:08 +01:00
Gabriele C
f0f2398e47 Incrase the auto poolSize value 2017-02-15 23:27:25 +01:00
ljacqu
666e242212 Delete CollectionUtils (unused) 2017-01-21 14:47:18 +01:00
Gabriele C
26194d676d #1063 Add useSSL option 2017-01-14 22:14:37 +01:00
ljacqu
b3a8c726cf Use Optional in CacheDataSource again
- An exception is thrown e.g. when running '/authme email player' where 'player' does not exist because CacheLoader#load may not ever return null (see Javadoc). Therefore, we are forced to wrap the PlayerAuth in an Optional.
- Use Java 8 Optional instead of Google's
2016-12-11 09:55:47 +01:00
DNx5
2586963780 Remove redundant Optional usages 2016-12-06 01:24:36 +07:00
ljacqu
7d65d2a7c4 Fix various code issues as detected by Sonar
Mostly minor changes:
- Add deprecated javadoc tag on deprecated members
- Reduce duplication (FlatFile, BackupService, ...)
- Make methods static
- Reduce size of anonymous classes
- Replace name with displayName in PermissionsSystemType (avoids confusing with Enum name())
- Tabs to spaces
- Merge if statements

Code from third-party sources (BCryptService, BinTools, PHPBB) not modified.
2016-11-22 18:20:55 +01:00
ljacqu
46af922fba Minor refactoring for tool tasks
- Don't scan for translations on initialization in TranslationPageGenerator in order to speed up startup time of ToolsRunner
- Extract checking for null / empty array of File#listFiles into a separate method
- Move single method of RuntimeUtils into Utils class
2016-10-30 10:43:59 +01:00
Gabriele C
1867617dbb Add option to override dbcp size 2016-10-22 00:46:28 +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