Commit Graph

385 Commits

Author SHA1 Message Date
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
Colin McDonald fb12a13528 Push a bunch of changes 2016-04-17 15:23:02 -04:00
Colin McDonald 922357fc7f Reorganize routes 2016-04-08 07:12:31 -04:00
Colin McDonald f627ba9358 Move exclusion strategy to its own file 2016-03-21 19:59:06 -04:00
Colin McDonald 4802efcfee Add a couple more routes 2016-03-21 19:58:08 -04:00
Colin McDonald e47e140bd3 essentially rewrite the entire api lol 2016-03-21 18:28:17 -04:00
Colin McDonald 15a8239afe Change error method signatures to reduce code verbosity 2016-03-06 00:02:30 -05:00
Colin McDonald d82ab071b6 Fix constructor temporarily, until we finish the Users accessor 2016-03-06 00:02:04 -05:00
Colin McDonald 3f5c9ed3a0 Rename routers to fit their respective routes better 2016-03-06 00:01:39 -05:00
Colin McDonald 516f831277 Create core routers 2016-03-05 23:37:33 -05:00
Colin McDonald 1a52326f29 Optimize imports 2016-03-05 23:36:08 -05:00
Colin McDonald e9c3198e5b Finish up work on models 2016-03-05 23:21:49 -05:00
Colin McDonald 0b13eed247 Push a couple model changes from last night 2016-02-27 14:46:33 -05:00
Colin McDonald 2884ce209a Commit current changes 2016-02-23 07:14:42 -05:00
Colin McDonald f8f23e7de6 More models! 2016-02-12 15:12:05 -05:00
Colin McDonald 734ac190d8 More work on models! 2016-02-12 00:31:57 -05:00
Colin McDonald 5f6113ce77 Hey it's (more) code! 2016-02-11 20:40:06 -05:00
Colin McDonald 6adaa63089 Hey it's code! 2016-02-11 19:10:46 -05:00
Colin McDonald e317e33245 Add skeleton implementation to all models 2016-02-07 21:06:41 -05:00
Colin McDonald f5f311ca7b Add FindOptions (optional) parameter to MongoUtils#findManyAndTransform 2016-02-07 21:06:13 -05:00
Colin McDonald b6d45853fb Rename Server#find* methods 2016-02-07 20:55:20 -05:00
Colin McDonald 58704fa890 Add LiteFullJson interface 2016-02-07 20:54:27 -05:00
Colin McDonald dccbca98bb Add @ToString annotations to all models 2016-02-07 20:52:03 -05:00
Colin McDonald 83d43ef57f Create all model classes 2016-02-07 20:51:02 -05:00
Colin McDonald f94fd33f5d Fix a few things 2016-02-07 18:09:54 -05:00
Colin McDonald 4b9b073e20 Stuff 2016-02-07 18:03:42 -05:00
Colin McDonald 549b69235f Stuff 2016-02-05 20:58:49 -05:00
Colin McDonald 8eee21b9c3 Initial commit! 2016-02-05 18:09:59 -05:00