489 Commits

Author SHA1 Message Date
ljacqu
7932c1bf90 Update to injector 1.0
- Includes Factory and SingletonStore so our custom implementation is removed
2017-11-25 21:27:18 +01:00
Gabriele C
b7c3d4b42e
Implement AuthMeBungee autologin (#1402)
* Implement AuthMeBungee autologin

There is a failing test due to cyclic dependency injection, @ljacqu could you take a quick look at this?

* Try to fix recursive dependency injection

* Fix codestyle

* Fix the subchannel name, again...

* Split BungeeService into BungeeSender and BungeeReceiver
2017-11-09 11:19:24 +01:00
Gabriele C
273c318e96 Cleanup 2017-11-02 11:24:17 +01:00
Gabriele C
2d2eb740e3 Implement bungee messaging, CacheDataSource sync 2017-10-30 10:38:13 +01:00
ljacqu
8127d70058
Merge pull request #1386 from AuthMe/1367-mysql-notNull-toggle
Improve MySQL not null toggle / authme debug commands output
2017-10-28 18:49:23 +02:00
ljacqu
20ca4f9dc9 #1368 Improve the look of /authme debug
- Add a colored title for each command execution within /authme debug
- Fit more texts on one line
2017-10-28 17:19:47 +02:00
ljacqu
c6fbc1187f #1367 MySQL not null changer: List 'not null' and default values separately
- Check not only for NOT NULL constraint but also if a column has a default value
- Use suffixes instead of colors only so the command is usable via console
2017-10-28 15:41:16 +02:00
ljacqu
04c5224e99
#1190 Show settings warnings on reload also (#1384)
- Extract setting checks into their own class, called on startup and reload
2017-10-28 14:15:38 +02:00
HexelDev
ba65633182 Email verification code (#1382)
* Base verification code implementation, must define command, manager, events
* VerificationManager, verification command and messages, handled some sensible commands, configuration values
* Improved manager and sensible commands trigger
* Updated messages
* Updated verification code manager, fixed tests
* Switched to a permission based command
* Verification manager and command improved and added tests
* Edited messages
2017-10-28 12:23:14 +02:00
ljacqu
d6e2369f36 #792 Force migration of SQLite when necessary (#1371)
- Detect if a migration is necessary
- Create a backup
- Perform the migration
2017-10-22 09:16:48 +02:00
ljacqu
1651a61063 #792 #814 Implement SQLite migration, allow last IP to be nullable in MySQL
- Old SQLite setups have the last IP column as NOT NULL but without a default value. With the new concept (where we don't set a last IP on player registration) it fails.
  - Create an /authme debug child that allows to migrate SQLite (tricky because SQLite does not support dropping or modifying columns)
  - Allow last IP column to be NOT NULL in MySQL as well (extend MySQL /authme debug child)
- Add TODO comments with follow-up issue to extend our commands with new registration IP field
2017-10-21 10:45:48 +02:00
ljacqu
a425eacf2d #792 Add missing tests / fix CodeClimate issues 2017-10-20 17:49:30 +02: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
7afda20288 #1338 Implement ''/authme messages help' to generate a fully complete help text file (#1349) 2017-10-09 07:19:38 +02:00
ljacqu
867b32194b #1347 Adapt tests for new change password architecture 2017-10-05 23:44:16 +02:00
sgdc3
e268c3a624 Start working on the changepassword api method
TODO: fix unit testing
2017-10-04 20:12:53 +02:00
ljacqu
649b027e5b Output used permission system in /authme debug perm 2017-09-17 09:09:11 +02:00
HexelDev
1dfb3575b5 #1119 email show permission and privacy improvements (#1312)
* #1119 new permission and email hider

* Updated commands.md

* Improved email hiding method

* Revert "Improved email hiding method"

This reverts commit cb60d7b

* New config option, updated tests, config.md and permission_nodes.md

* Moved to service import, fixed typo and updated config.md

* Removed unused imports O.o
2017-08-12 16:20:06 +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
ljacqu
4ac980111d Add some tests, minor Checkstyle fixes 2017-07-16 13:00:55 +02:00
Gabriele C
c758e15cd7 Store the entire player's list of groups instead of primary group 2017-07-01 19:18:42 +02:00
ljacqu
08214aeee6 Debug limbo viewer: don't get primary group if not supported
- Reported via #1238, the primary group of a player should not be queried if the permissions plugin does not have group support
- Use the reverse order for showing player / limbo / disk limbo info
2017-06-11 15:14:32 +02:00
ljacqu
1c46c92b4e #1146 List available converter, reference converters Wiki page in config.yml 2017-05-21 12:28:35 +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
578f63b944 #923 Create /authme purgeplayer command
- Create command to purge a specific player name
- Update docs
2017-04-29 18:31:37 +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
0e923b6a70 #1180 Create command for performing a backup 2017-04-23 20:23:40 +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
b0c05afaa7 Create util method to check if email is empty
- Create method to check if email is empty or the default AuthMe email (avoids repetition)
- Check that input email has '@' inside text (relates to #1105)
2017-04-18 21:24:33 +02:00
ljacqu
b99cc3bada #1127 Create DataSource#getEmail 2017-04-18 21:07:31 +02:00
ljacqu
2a747c7d01 #1034 Create permissions for debug sections
- Add an individual permission for each debug section (including wildcard perm)
- Create test for DebugCommand
- Refactor tests for the enum permission nodes to use the same abstract class
- Update related project files (plugin.yml, permission docs, command docs)
2017-04-14 19:54:17 +02:00
Gabriele C
fc47a0a74f Force US decimal format 2017-03-26 16:12:53 +02:00
ljacqu
75f84945fc Misc code householding
- Checkstyle config: allow todo comments with issue number
- Create consistency tests across all classes, ensuring: unique class names, users of expiring collectors implement HasCleanup, non-private fields are only constants
- Fix tag replacement in PlayerListener for {DISPLAYNAME}
2017-03-26 13:20:40 +02:00
ljacqu
8cf7983027 #1034 Add debug sections for spawn and input validation 2017-03-26 12:10:51 +02:00
ljacqu
a2d62ea6d9 #1116 #1117 Add command usage hints and remove unused message keys
- Add usage message on argument mismatch where available
- Remove unused message keys
- Create tool task to search for a message key's usages and to find unused keys
2017-03-24 23:03:10 +01: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
e77828b228 Update docs / update recovery code command in email message
- Update docs to reflect new commands, configurations (account recovery, limbo handling) and messages
- Change message for the recovery code email to contain the new command
2017-03-22 23:14:02 +01:00
EbonJaguar
ce40b3798b Add logging for when a player changes their password or has a new one generated 2017-03-22 17:54:30 -04:00
EbonJaguar
4053a0e328 If recovery code is required, dont send new password 2017-03-22 17:11:18 -04:00
EbonJaguar
46dd588923 Merge branches 'master' and 'passwd_recovery_process' of https://github.com/AuthMe/AuthMeReloaded into passwd_recovery_process 2017-03-22 17:08:05 -04:00
ljacqu
7dbf5551c9 Cleanup: avoid injecting Injector directly
- Inject SingletonStore to restrict the possible functions
- Refactor PasswordSecurityTest to correspond to the usual way of testing
2017-03-21 22:59:21 +01:00
Gnat008
9d21eefc74 Merge branches 'master' and 'passwd_recovery_process' of https://github.com/AuthMe/AuthMeReloaded into passwd_recovery_process
# Conflicts:
#	docs/config.md
#	src/main/resources/messages/messages_bg.yml
#	src/main/resources/messages/messages_es.yml
#	src/main/resources/messages/messages_pt.yml
#	src/main/resources/messages/messages_zhcn.yml
2017-03-21 17:26:29 -04:00
ljacqu
d19748fe5b #1034 Debug commands: permission checker + data statistics
- Create debug command to check if a player has the given permission
- Create debug command that outputs the size of various caches / DB info / number of saved instances in injector
2017-03-21 22:00:21 +01:00
ljacqu
3c45ca8425 #1100 Check that auth exists for /email show
- This case should never happen, but better to be safe
2017-03-20 20:57:09 +01:00
ljacqu
6eaa91278e Merge branch 'master' of https://github.com/AuthMe/AuthMeReloaded into limbo
# Conflicts:
#	.checkstyle.xml
2017-03-20 08:23:52 +01:00