Commit Graph

377 Commits

Author SHA1 Message Date
Colin McDonald adb16d8c8d Add Mojang api debug 2016-07-02 17:38:56 -04:00
Colin McDonald de9a490aa1 Change ErrorUtils#respondInternalError to print the error + request info with slf4j 2016-06-30 23:01:13 -04:00
Colin McDonald 043bc76cd3 Update dump cache immediately upon startup 2016-06-30 17:30:20 -04:00
Colin McDonald c1017f9241 Fix a few mistakes we made when passing callback results back up 2016-06-30 17:29:28 -04:00
Colin McDonald 968ceb1a1d Modify APIv3#respondJson to not have default status code 2016-06-29 21:23:37 -04:00
Colin McDonald bcd95d9e9b Code updates to fit "expected" documentation 2016-06-29 00:24:41 -04:00
Colin McDonald f4dcf7c3be Optimize imports 2016-06-27 23:01:37 -04:00
Colin McDonald c8c1ac153d Even more Zang telephone work! 2016-06-27 23:01:12 -04:00
Colin McDonald 822dd27536 Remove maxmind debug 2016-06-27 22:14:51 -04:00
Colin McDonald f1c9b3666e Update POST /ranks for new Rank constructor 2016-06-27 21:57:24 -04:00
Colin McDonald c742b6d01f Require totp authorization on some actions 2016-06-27 21:55:35 -04:00
Colin McDonald ac0865fde7 Create audit log entries for login fails/successes 2016-06-27 21:16:34 -04:00
Colin McDonald e0af72caf5 Add access token CRUD routes 2016-06-27 21:07:52 -04:00
Colin McDonald 29a13c1647 Convert authorization to use access tokens. Completes #24 2016-06-27 16:55:21 -04:00
Colin McDonald bcae144e8c Optimize imports 2016-06-26 23:34:04 -04:00
Colin McDonald 74f23bcb62 Remove user field (not used) and bestRank field (will be assumed by the client) from login info 2016-06-26 23:27:36 -04:00
Colin McDonald 9110acd14a More work on Zang integration 2016-06-26 22:51:11 -04:00
Colin McDonald ff4ac3ab9d Comment out bad server timeout code 2016-06-26 22:50:15 -04:00
Colin McDonald 1532bee954 More work on Zang phone registration 2016-06-26 22:24:06 -04:00
Colin McDonald 9f4089a752 Prevent duplicate email addresses 2016-06-26 21:48:26 -04:00
Colin McDonald 8740d32621 Fix infinite while loop issue 2016-06-26 21:31:59 -04:00
Colin McDonald 75aac64e91 Change MaxMind log from a warn to an info 2016-06-26 19:33:37 -04:00
Colin McDonald 10e9ac5bea Don't send 'totpSetup' in login info, it isn't used. 2016-06-26 19:27:37 -04:00
Colin McDonald 4101538202 Readd simple exception handler 2016-06-26 19:26:01 -04:00
Colin McDonald 95d8a45d86 Don't send access unless needed 2016-06-26 19:25:42 -04:00
Colin McDonald 8d66bd1568 Fix issue w/ live cache updates 2016-06-26 19:19:34 -04:00
Colin McDonald 983c428a09 Redo rank calculation to allow ranks that aren't part of the primary inheritance chain. Finishes #33 2016-06-26 19:09:11 -04:00
Colin McDonald 1b20362f4d Finish audit log redux - completes #5 2016-06-26 17:14:47 -04:00
Colin McDonald d8b66742de Populate cached models immediately upon startup 2016-06-26 15:09:03 -04:00
Colin McDonald a4d00ca5b0 Hide thread info in slf4j-simple 2016-06-26 15:08:31 -04:00
Colin McDonald 3a838b8b56 Add MaxMind debug info 2016-06-26 15:01:00 -04:00
Colin McDonald 4313f6f14f Optimize imports 2016-06-25 21:30:54 -04:00
Colin McDonald 2a5118ee3f Work on audit log redux 2016-06-25 21:30:39 -04:00
Colin McDonald f8bf433953 Add email domain blacklisting 2016-06-25 20:40:45 -04:00
Colin McDonald daa48688eb Optimize imports 2016-06-25 19:21:59 -04:00
Colin McDonald 6957b67863 Add banned cell carrier model to prepare for full Zang integration 2016-06-25 19:21:23 -04:00
Colin McDonald 49a441fe03 Change server heartbeat's players section from an array to a dict 2016-06-25 19:09:51 -04:00
Colin McDonald a39a1801e4 Slightly optimize number of db queries used in POST /users/:id/leave 2016-06-25 19:02:07 -04:00
Colin McDonald 439f92f596 Remove unused event types 2016-06-25 19:01:46 -04:00
Colin McDonald 8d1fb524ec Add heartbeat timeout 2016-06-25 18:55:48 -04:00
Colin McDonald fde7d50edc Make some changes to make IntelliJ's code inspection happier 2016-06-25 18:41:44 -04:00
Colin McDonald a648fb7f30 Refactor permissions in prep for ranks not on the inheritance tree 2016-06-25 18:20:32 -04:00
Colin McDonald 3381d74a8b Readd very basic metrics 2016-06-25 18:02:07 -04:00
Colin McDonald 70d26256bd Disable debug (for now) 2016-06-25 16:25:59 -04:00
Colin McDonald f4abba2309 Optimize imports 2016-06-25 16:24:04 -04:00
Colin McDonald 605b70bf01 Finish the server heartbeat 2016-06-25 16:23:44 -04:00
Colin McDonald a255d45603 Auto-update the cache (for cached models) when inserting/deleting 2016-06-24 23:54:34 -04:00
Colin McDonald ef3f7345e5 More work on the heartbeat 2016-06-24 23:50:51 -04:00
Colin McDonald 1d21d70371 Optimize imports 2016-06-24 23:16:42 -04:00
Colin McDonald e2da72db1b Fully implement banned asns. Closes #25 2016-06-24 23:16:24 -04:00
Colin McDonald 00b3ac19f3 Rename PUT routes to align with their definitions in APIv3.java 2016-06-24 23:13:36 -04:00
Colin McDonald 04369a1f97 Add basic Zang functionality 2016-06-24 22:54:49 -04:00
Colin McDonald a68a44f781 Remove Jackson experiment from APIv3.java 2016-06-24 22:54:30 -04:00
Colin McDonald 2ca872706c Clean up http request code in MandrillUtils and MaxMindUtils 2016-06-24 22:53:57 -04:00
Colin McDonald 0a036f5ec5 Move mandrill sending from inside notifications to its own utility 2016-06-24 22:36:15 -04:00
Colin McDonald 8972605a02 Fix possible concurrency issue with POST /users/:id/leave 2016-06-24 22:18:45 -04:00
Colin McDonald a87578a8a6 Fix compilation issue created by adding new user fields 2016-06-24 22:05:37 -04:00
Colin McDonald 26e274596b Finish #18, make POST /users/:id/verifyTotp async, cleanup totp code 2016-06-24 22:03:52 -04:00
Colin McDonald 0653edaae3 Rename route classes to match their actual paths 2016-06-24 19:38:00 -04:00
Colin McDonald fd1ec2b475 Add password reset route. Closes #29 2016-06-24 19:23:31 -04:00
Colin McDonald 4901e63599 Change Jackson constructors from public to private 2016-06-24 19:00:40 -04:00
Colin McDonald 1c07b20f89 Fix compilation issue produced by the previous commit 2016-06-24 18:56:37 -04:00
Colin McDonald aaba9cb369 Modify POST /user/:id/setupTotp to work with adjusted requirements 2016-06-24 18:55:47 -04:00
Colin McDonald 4a727f3d04 Large commit to convert all models to be full async 2016-06-24 03:00:37 -04:00
Colin McDonald e9da784953 Remove MojangUtils debug, it appears to be fine now 2016-06-24 02:59:08 -04:00
Colin McDonald 6eeb153413 Add more MaxMind results 2016-06-24 02:58:44 -04:00
Colin McDonald 3de5e8d756 Make authorized field in UserActor final 2016-06-24 02:57:54 -04:00
Colin McDonald ddd0e0159a Integrate user logins with MaxMind, and deny access to users on VPNs 2016-06-23 13:31:44 -04:00
Colin McDonald 4e00381e50 Always use HTTPS when communicating with the Mojang api 2016-06-23 13:30:33 -04:00
Colin McDonald 2e439a5b18 Add defaults to MaxMind result parsing 2016-06-23 13:29:27 -04:00
Colin McDonald 61197b1050 Remove bugsnag, with all async code it serves little to no purpose 2016-06-23 01:01:54 -04:00
Colin McDonald 66b2fc5951 Make GET /dumps' background thread use the Vert.x scheduler instead of being a standalone thread 2016-06-23 00:59:18 -04:00
Colin McDonald 43b59dcf2c Move HttpClient/RedisClient from APIv3.java to their relevant util classes 2016-06-23 00:58:42 -04:00
Colin McDonald 23b9d81923 Make BugsnagSlf4jLogger final 2016-06-23 00:57:33 -04:00
Colin McDonald 8c67a1bc54 Optimize imports 2016-06-23 00:56:57 -04:00
Colin McDonald 5310a0c6c4 Remove notes about using an array for scopes in POST /grants, it's already been done 2016-06-23 00:56:43 -04:00
Colin McDonald b291e9e13b Convert more routes to use body fields instead of query params 2016-06-23 00:56:04 -04:00
Colin McDonald c00b424fe8 Allow specifying the user to search for in GET /auditLog, /punishments, /grants, and /ipBans 2016-06-23 00:54:40 -04:00
Colin McDonald 2eeabf7ef8 Remove note regarding async inserts - Vert.x's CompositeFuture's methods don't allow clean integration, and it isn't worth the development time to adapt it. 2016-06-23 00:52:42 -04:00
Colin McDonald 86a7504af6 Optimize imports 2016-06-22 19:47:08 -04:00
Colin McDonald 9f2e4a63f0 Convert MaxMindResult's subdivisions to a list 2016-06-22 19:45:49 -04:00
Colin McDonald 5c3274d483 Swap Mongo's Document for Vert.x's JsonObject 2016-06-22 19:44:39 -04:00
Colin McDonald 2bdd54836d Convert a few routes to use body parameters instead of query params 2016-06-22 18:13:09 -04:00
Colin McDonald 152492eb06 Remove debug 2016-06-22 17:36:20 -04:00
Colin McDonald d47b0a6170 Part 2 of the big "make this closer to a RESTful api" commit [Doesn't compile] 2016-06-22 17:14:51 -04:00
Colin McDonald 8ade7066f9 Part 1 of the big "make this closer to a RESTful api" commit 2016-06-21 17:08:17 -04:00
Colin McDonald 217683407e Add bugsnag TODO in ErrorUtils#respondInternalError 2016-06-21 17:07:23 -04:00
Colin McDonald 7b594d695b Convert MaxMindTraits' user_type to an enum 2016-06-21 17:06:34 -04:00
Colin McDonald d261ef507a Add note to V2Importer regarding possible future optimization 2016-06-21 17:02:20 -04:00
Colin McDonald a0188e2d8c Move permissions check from UserActor to ActorAttributeHandler to make the async conversion easier 2016-06-21 17:01:59 -04:00
Colin McDonald 825e1c586e Only create ip bans for bans and blacklists, not all punishments. Closes #22 2016-06-21 10:50:59 -04:00
Colin McDonald 4ba3dcd907 Redo email / user registration to make a lot more sense. Closes #14 and closes #15 2016-06-21 01:39:14 -04:00
Colin McDonald 63384231c2 Partially complete POST /user/:id/changePassword. Still requires TOTP integration 2016-06-21 01:31:48 -04:00
Colin McDonald 0d656ab96d Properly register GET /user/:id/requiresTOTP as an async handler 2016-06-21 01:20:43 -04:00
Colin McDonald d466abe113 Fix our response to internal errors in GET /user/:id/requiresTOTP 2016-06-21 01:20:01 -04:00
Colin McDonald 1eb09b9714 Remove bad password list (for now) -- we'll eventually come back and implement this in a better way 2016-06-21 01:18:38 -04:00
Colin McDonald a5acd2c9ff Move GET /user/:id/requiresTOTP logic into User to make future expansion easier 2016-06-21 01:18:06 -04:00
Colin McDonald 39f0b7d665 Create GET /emailToken/:emailToken/owner to retrieve an email token's owner, rename POST /user/confirmRegister/:emailToken: to POST /emailToken/:emailToken/confirm. Closes #16 2016-06-21 01:00:03 -04:00
Colin McDonald 3bc703384b Try-catch MojangUtils#getName and a portion of POST /server/heartbeat to make debugging easier 2016-06-21 00:58:49 -04:00
Colin McDonald 27b98d3b69 [Part 3] Fix git file names 2016-06-20 02:30:52 -04:00
Colin McDonald a2afa686a2 [Part 3] Fix git file names 2016-06-20 02:30:13 -04:00
Colin McDonald 02d97dd24d [Part 2] Fix git file names 2016-06-20 02:28:50 -04:00
Colin McDonald 16ccd67183 [Part 1] Fix git file names 2016-06-20 02:27:57 -04:00
rbrick 3d71300621 Add User's UUID to the response of UserVerifyPassword ( #17) 2016-06-20 00:11:59 -05:00
Colin McDonald 56487b04a7 Add loader.io verification 2016-06-18 10:03:31 -04:00
Colin McDonald 9054974f55 Change /user/:id/verifyPassword back to a GET, allow email+username as ids as well 2016-06-17 20:47:59 -04:00
Colin McDonald 22f3b3dd72 Implement MaxMind data into the API, add GET /ip/:id/intel. Closes #3 2016-06-17 19:19:01 -04:00
Colin McDonald 8d77802cde Print stack traces for internal errors 2016-06-17 19:18:27 -04:00
Colin McDonald b98dcd0a83 Change /user/:id/verifyPassword from a GET to a POST (this will probably be undone later) 2016-06-17 19:17:50 -04:00
Colin McDonald 99b30ef290 Map coowner -> owner in grant conversions 2016-06-17 19:16:03 -04:00
Colin McDonald 0974d2e20f Optimize imports 2016-06-17 14:59:10 -04:00
Colin McDonald 2db90eedd5 Make MaxMindUtils compile properly 2016-06-17 14:58:56 -04:00
Colin McDonald 63e8683b67 Add MaxMind result models, IpIntel model 2016-06-17 14:58:06 -04:00
Colin McDonald 3a836e8db6 Optimize imports 2016-06-17 12:41:04 -04:00
Colin McDonald a1e70b47f7 Some small changes to make IntelliJ's code analysis happy 2016-06-17 12:40:47 -04:00
Colin McDonald cec5031aea Optimize imports 2016-06-17 01:13:39 -04:00
Colin McDonald ba17babfb8 Add an async save method to ServerGroup 2016-06-17 01:13:20 -04:00
Colin McDonald dff1e16283 Finish linked ip ban integration 2016-06-17 01:13:03 -04:00
Colin McDonald 26e84251b6 Add some more async functionality 2016-06-17 01:12:32 -04:00
Colin McDonald 07e0a3328a Add blocking TODO/warning 2016-06-17 01:12:04 -04:00
Colin McDonald c830372f29 Add GET /user/:id/punishments 2016-06-17 01:11:45 -04:00
Colin McDonald 15a8ba70db Add Jackson Instant serializers 2016-06-17 01:11:28 -04:00
Colin McDonald adf8d49334 Properly name InstantTypeAdapter 2016-06-17 01:11:01 -04:00
Colin McDonald 3c25095340 Add / before endpoint to ensure the call always works 2016-06-17 01:10:38 -04:00
Colin McDonald de933bc571 Convert some basic read-only routes to async 2016-06-17 01:10:09 -04:00
Colin McDonald a92dee1e6f Rename some classes to fit Google's Java standards 2016-06-17 01:09:28 -04:00
Colin McDonald 63b1e7b2c3 Add MaxMind files 2016-06-17 01:07:20 -04:00
Colin McDonald 453a3264be Swap Date to Instant 2016-06-16 12:25:22 -04:00
Colin McDonald fac4d50501 Fix possible issues presented by FindBugs 2016-06-16 10:58:23 -04:00
Colin McDonald c99052d8f1 Optimize imports 2016-06-16 10:50:24 -04:00
Colin McDonald 3a1b68b6b6 Cleanup some small bits of code 2016-06-16 10:49:57 -04:00
Colin McDonald 78762262c7 Refactor package names, add ip bans 2016-06-16 10:29:33 -04:00
Colin McDonald 7018a3c5e2 ayy last fake commit 2016-06-16 00:08:44 -04:00
Colin McDonald 7e462e1915 Push a bunch of experimental code (this doesn't currently work) 2016-06-12 16:36:11 -04:00
Colin McDonald 60a622fc43 Push a bunch of experimental code (this doesn't currently work/compile) 2016-06-09 22:39:23 -04:00
Colin McDonald 7d626afa20 Vertx prototyping 2016-06-01 14:23:37 -04:00
Colin McDonald 2248788961 Properly map our Morphia models so indexes will be created 2016-05-29 02:45:17 -04:00
Colin McDonald 125eeec747 Don't explicitly save users when they're first seen, as they'll already be saved in the User constructor 2016-05-29 02:44:54 -04:00
Colin McDonald 63a9a51c5f Switch to a batched solution for server heartbeats 2016-05-29 02:44:10 -04:00
Colin McDonald 37af5a7bd5 Cache servers 2016-05-29 02:43:37 -04:00
Colin McDonald b7e95d3120 When importing data, skip punishments with active set to false to respect older punishments 2016-05-28 00:33:40 -04:00
Colin McDonald 7126dde94a Optimize User#seenOnServer to save on database updates 2016-05-28 00:29:35 -04:00
Colin McDonald 26c399fc8e Implement server group cache, standardize caching system 2016-05-28 00:29:03 -04:00
Colin McDonald f4e8513343 Add more details to Mojang API stack traces 2016-05-28 00:28:40 -04:00
Colin McDonald afa31fb8b6 Add better indexes on ipLog and punishments 2016-05-27 16:34:18 -04:00
Colin McDonald 2c3069de9a Remove unused methods/fields 2016-05-20 16:19:13 -04:00
Colin McDonald 3bf8fde060 Remove unused ErrorUtils#unauthorized method 2016-05-16 16:49:14 -04:00
Colin McDonald 76e2b60250 Add more metrics 2016-05-16 16:48:35 -04:00
Colin McDonald 26db4bb255 Make user auth rank checks case insensitive 2016-05-15 17:43:41 -04:00
Colin McDonald 85dfedfa6f Move enableRouteOverview call near other routes 2016-05-15 00:51:38 -04:00
Colin McDonald 4f8366b966 Cached dumps 2016-05-15 00:49:03 -04:00
Colin McDonald 5b55bc243d Optimize imports 2016-05-14 23:59:05 -04:00
Colin McDonald 52ad1bd685 Improve conversion and fix permission calculation 2016-05-14 23:58:37 -04:00
Colin McDonald 199072b5fb Add rank id conversion and properly update rank cache 2016-05-13 23:58:25 -04:00
Colin McDonald 846a7210bd Use Result#type instead of setting the header manually when setting content types 2016-05-13 23:38:06 -04:00
Colin McDonald 6200cefd39 Require version 4 UUIDs from clients 2016-05-13 23:36:58 -04:00
Colin McDonald d863b4f8a5 Implement data converter 2016-05-13 23:23:46 -04:00
Colin McDonald b76eead314 stuff 2016-05-10 18:45:25 -04:00
Colin McDonald 46eda73347 Let POST user leave be used from anywhere 2016-05-10 18:44:12 -04:00
Colin McDonald b4b70bafd5 Renames! 2016-05-10 18:37:07 -04:00
Colin McDonald afbe2a68b5 changes 2016-05-10 12:30:21 -04:00
Francisco Saldanha 42ab0cab63 Add a POST /user/:id/leave, this will be used to track whether a player is currently on the network or not. 2016-05-09 17:09:09 -03:00
Francisco Saldanha 7a10f1f70d Fix BugsnagSLF4JLogger and sort staff response by rank weight 2016-05-09 16:36:14 -03:00
Colin McDonald 0c6ac74792 Optimize imports 2016-05-08 23:19:11 -04:00
Colin McDonald d062ab5718 More stuff 2016-05-08 23:18:55 -04:00
Francisco Saldanha 4b49c5bafe Fix typo 2016-05-08 11:40:51 -03:00
Francisco Saldanha 84a77a6814 ImmutableMap.of() does not like null parameters 2016-05-07 12:06:16 -03:00
Francisco Saldanha 8444fa02f6 Send mute with log-in info 2016-05-07 10:34:10 -03:00
Francisco Saldanha da944508b4 Fix DateTypeAdapter 2016-05-06 23:44:11 -03:00
Colin McDonald 34415929c4 More stuff 2016-05-06 21:57:32 -04:00
Colin McDonald 6a1c86ee5a Even more metrics 2016-05-06 21:00:29 -04:00
Colin McDonald 065c55e0b4 push stuff 2016-05-06 09:58:42 -04:00
Colin McDonald 979b82e90e Cleanup 2016-05-06 09:30:47 -04:00
Colin McDonald 18c264995c Remove unneeded permissions 2016-05-05 19:44:07 -04:00
Colin McDonald a9a7722a2f Optimize imports 2016-05-05 19:36:04 -04:00
Colin McDonald 6009522090 Whoa stuff 2016-05-05 19:35:45 -04:00
Colin McDonald 1b05b16fed Whoa stuff 2016-05-05 17:38:28 -04:00
Colin McDonald 53c7222107 More stuff 2016-05-05 16:38:50 -04:00
Colin McDonald 04e4db8fcd More work 2016-05-05 16:00:32 -04:00
Colin McDonald 03bc01e5ce More work 2016-05-04 17:31:03 -04:00
Colin McDonald 2d05637103 stuff 2016-05-04 15:38:52 -04:00
Colin McDonald 5d5a1d3468 Commit more 2FA stuff 2016-05-02 23:08:57 -04:00
Colin McDonald 799a8de386 Push code for griffin 2016-05-02 19:34:30 -04:00
Colin McDonald c3efe78ce4 Commit some old changes 2016-05-02 17:35:05 -04:00
Colin McDonald 816b214993 Whoa bunch of fixes 2016-05-01 00:34:02 -04:00
Colin McDonald 0b5d5c8071 Move one more thing 2016-04-30 20:45:19 -04:00
Colin McDonald 84b4a184ed Fix some import issues + finish route ordering 2016-04-30 20:43:55 -04:00
Colin McDonald 390fd4aecc Fix formatting issue 2016-04-30 20:31:07 -04:00
Colin McDonald befd1c4782 Fix formatting issue 2016-04-30 20:24:12 -04:00
Colin McDonald f07f129f78 Add some routes 2016-04-30 20:23:10 -04:00
Colin McDonald e38eb0894f Add some routes 2016-04-30 20:20:12 -04:00
Colin McDonald 583f91b45e Whoo more permission stuff 2016-04-30 20:08:58 -04:00
Colin McDonald 1d5d2d198b Ayy more code 2016-04-30 14:03:34 -04:00
Colin McDonald 3780ead458 General API work 2016-04-28 16:57:44 -04:00
Colin McDonald a07d9f524b Implement a basic configuration system 2016-04-28 15:58:58 -04:00
Colin McDonald e8bdcdc6a5 ayy 2016-04-27 22:41:22 -04:00
Colin McDonald cd3936b0bf Add user registration! 2016-04-27 17:58:00 -04:00
Colin McDonald 1f5663ab89 Whoa even more changes 2016-04-26 20:46:34 -04:00
Colin McDonald 39817d154c Push non-completed code so I can move to my desktop! 2016-04-25 17:27:53 -04:00
Colin McDonald 2b57a5ef98 Finish up punishment/grant routes, finish GET /dump, begin permission implementation 2016-04-22 21:04:15 -04:00