Pages: [1] 2 3 4 5 6 :: one page |
|
Author |
Thread Statistics | Show CCP posts - 0 post(s) |
MisterMagotchi
B4D W0LF B4D W01F
2
|
Posted - 2011.09.06 22:48:00 -
[1] - Quote
Teamspeak and phpBB Forums EVE Online API Registration System
Features Summary:
- Combines phpBB (forums) registration with Teamspeak registration
- Automatically puts users in groups in Teamspeak and phpBB based on EVE corporation via EVE API
- Automatically removes users from those groups if their API information becomes invalid or if they are no longer in a configured corporation
- Automatically switches members between corp. groups if they switch from one configured corp. to another
- Provides an admin interface for admins to view the registration information, update a user's details, recheck them, view registration errors with information to troubleshoot them, etc.
- Reasonably well-documented code for easy customization
More Info and Download
Screenshots:
Registration Screen
Admin Area / Registration List
If anybody has any difficulty installing or using it, I'll be glad to help.
Special thanks to Gary Hagon for helping me test it. There were some initial issues that prevented it from working on some other servers, and those are now fixed. |
Fenris Nihilus
S0utherN Comfort Controlled Chaos
0
|
Posted - 2011.09.07 02:18:00 -
[2] - Quote
I just need to know... does this api authentication code have to run on the same server hosting the ts3 server? I understand its something you implement into your forum code... but what about people who pay for TS3 hosting? There isn't much detail on your site how you connect ts3 to the authentication process. |
Fenris Nihilus
S0utherN Comfort Controlled Chaos
0
|
Posted - 2011.09.07 02:32:00 -
[3] - Quote
Fenris Nihilus wrote:I just need to know... does this api authentication code have to run on the same server hosting the ts3 server? I understand its something you implement into your forum code... but what about people who pay for TS3 hosting? There isn't much detail on your site how you connect ts3 to the authentication process.
Actually I think I found it. Your using ServerQuery in the code right? So you just have to grant it access to the server via admin panel from your ts3 host. Correct me if I'm wrong. |
MisterMagotchi
B4D W0LF B4D W01F
2
|
Posted - 2011.09.08 23:04:00 -
[4] - Quote
Sorry for the delay in response. I wish this system sent emails, but I haven't figured out if it does or where to set the option.
Yes. It just uses TS3's Server Query.
Normally you have to add the IP of the server you'll run this script on to TS3's "query_ip_whitelist.txt", so how you do this is really determined by your TS3 server host. If they provide you with either FTP or an interface to edit the IP whitelist, then great. Otherwise you'll likely need to talk to their support about it. |
Gary Hagon
Angry Hobos Interstellar Hobos
0
|
Posted - 2011.09.10 20:59:00 -
[5] - Quote
Magotchi - I am still trying to break it
So far, no problems yet.
For the person who asked about TS hosting, you need to ask your hosting provider to make you a server query account and get the web server that the script is running on "white-listed".
Most hosting companies will not do this under any situation, but I do hosting at decent rates with this mod as an option. mail me and I can help you get set up.
Also, Magotchi, Let me know if you are already working on this, but im trying to get the new api system running with this script.
Let me know if you come up with anything because this is worse than beating my head against a wall. |
MisterMagotchi
B4D W0LF B4D W01F
2
|
Posted - 2011.09.11 10:09:00 -
[6] - Quote
I haven't started on it yet, but I've done a little looking into it. I'll let you know what I come up with.
Update: I have a good plan, and there's a good chance I'll implement it tomorrow. It won't be hard. It will include the ability to require a minimum set of access mask options for the keys as well, although it technically only needs a Character (not Account) key with access to the CharacterInfo under Public Information (on the API creation page). My assumption is that corps. and alliances will want that same thing but as an Account key as their minimum (for very rudimentary manual spy-checking ability), but I'll leave that customizable. |
Philderbeast
M.I.M.M.S The Watchmen.
0
|
Posted - 2011.09.11 11:24:00 -
[7] - Quote
i just installed this and its very nice but its not adding some people to the appropriate groups on ts. so far it seems server, specifically the people set up as server admins, is this intentional or caused by ts? |
MisterMagotchi
B4D W0LF B4D W01F
2
|
Posted - 2011.09.11 11:30:00 -
[8] - Quote
I think I would have to know the specifics to help much further, but if the user's Username and API info. match a character that's in a corp. you have configured in config.inc.php ($config['Groups']), and that group ID exists in Teamspeak, there's no reason they shouldn't get added to the correct group. |
MisterMagotchi
B4D W0LF B4D W01F
2
|
Posted - 2011.09.11 12:06:00 -
[9] - Quote
After thinking about how to work with the new API system, I have some dramatic changes coming down the pipe, again likely worked on heavily tomorrow (well today I mean since it's 6am'ish my time and I'm awake still).
Summary of Planned Changes in Upcoming Version:
- The new customizable API keys will be required. The access mask and key type will be configurable as described in my previous post.
- There will be a registration page separate from the phpBB registration page. It will still require the user be logged in to the forums to use, though.
- Much less customization will be required to the forums. Adding the Teamspeak Registration table and a link in the forums to the new registration page will be the only required steps in that regard.
- The registration page will be re-usable by the users to re-register as their information (API key, character they want registered, TS UID) changes.
- The registration page will walk users through the process in a much better way, including using AJAX to get the username/usernames of their characters in configured corps. and verifying that all the submitted information is correct.
- Registration will require the user to be in the Teamspeak server. It's a long story as to why, but it's for security.
- As another security fix, Unique IDs will be checked to make sure they're not already in use by another registered user.
- Successful registration will update the user's forums username to match their registered player name.
- Checks where there is a failure due to bad key information or where the user is no longer in a registered corp. will, in addition to removing the user's forums and TS rights, also unregister them entirely (not from the forums, but only from this API registration system). This will prevent future unnecessary checks. They can of course still re-register at any time as above.
- The system will use the EVE API CachedUntil timestamp to make its determinations instead of the time of the last check. In cases where the connection to the EVE API server fails during a check, that timestamp will be cleared so that the user is moved to the front of the line for the next check.
There may be more features, and as the above are just based on the program plan I wrote for myself, there is a chance some of them could change as I get into the actual coding.
There won't be much of an upgrade path from the old version other than that most of the things in the config file will stay the same (with a couple new additions). Due to the fact that the API key system is changing, this only makes sense anyway.
I'm going to get some sleep and then get right back on this when I wake up this afternoon. |
Gary Hagon
Angry Hobos Interstellar Hobos
0
|
Posted - 2011.09.11 14:58:00 -
[10] - Quote
Careful bud, I dont know how, but I crashed my computer... Apparently I accidentally got it into a infinite loop... (I have a test server on my box).
Hey bud, when you release that, I wil, yet again, be your test dummy =).
Im gonna keep trying with the code (this time on a VMware....) |
|
MisterMagotchi
B4D W0LF B4D W01F
4
|
Posted - 2011.09.12 09:59:00 -
[11] - Quote
I've done the vast majority of the work on implementing these changes today (Sunday), and I'll likely finish it tomorrow evening.
I just need to finish some minor things, do some more testing, and make the appropriate changes to the documentation.
I'll be back on it when I get off work Monday evening. |
Gary Hagon
Angry Hobos Interstellar Hobos
0
|
Posted - 2011.09.12 21:31:00 -
[12] - Quote
Hey bud, Im starting a small beta test on it now. You have my TS info, so if im ingame, come on in and we can try to break it again! |
MisterMagotchi
B4D W0LF B4D W01F
4
|
Posted - 2011.09.13 04:45:00 -
[13] - Quote
Well mine is done. I'm just still tweaking the documentation as I said. I'll release it tonight. |
Gary Hagon
Angry Hobos Interstellar Hobos
0
|
Posted - 2011.09.13 11:55:00 -
[14] - Quote
Sorry I missed you when you hopped on TS3...
I will test it when I get home today.
EDIT: I dont know if you have implemented this yet, but I reccomend you have a API template URL somewhere on the registration page for the users to click on.
Example https://support.eveonline.com/api/key/CreatePredefined/58720264
That link would send a person to the CCP API page to create an api with the following permissions... AccountStatus CharacterInfo CharacterSheet CharacterInfo
BTW, Witch xml does this script need access to? |
MisterMagotchi
B4D W0LF B4D W01F
4
|
Posted - 2011.09.13 18:17:00 -
[15] - Quote
The script already uses the template URL on the registration page for whatever your configured minimum access mask is.
If you read the documentation in config.inc.php, you'll have your answer about what it requires: "These are totally up to you as an admin."
Even an access mask of 0 is enough for this script, as that still gives access to the character list, and that's why it's the default in the config. |
Balani
ELVE Industries Shadow of xXDEATHXx
1
|
Posted - 2011.09.13 18:22:00 -
[16] - Quote
i get after installation
Parse error: syntax error, unexpected T_SL in /var/www/vhosts/*****/httpdocs/register/index.php on line 4
same in admin dir
Parse error: syntax error, unexpected T_SL in /var/www/vhosts/*****/httpdocs/register/admin/index.php on line 39 seems EOL causes it
|
MisterMagotchi
B4D W0LF B4D W01F
4
|
Posted - 2011.09.13 18:56:00 -
[17] - Quote
Balani: I guess I should put in the requirements that it requires PHP 5.3.0 or greater.
The ( EOL ) sections aren't the problem. It's the ( 'EOL' ) (with a single quote on each side of EOL) that only work in PHP 5.3.0 or greater. You can either upgrade your PHP, or you might be able to just find and replace every occurrence of the second thing with the first thing, and it should work fine, but you might have to put a backslash ( "\" ) before the dollar signs in the javascript section in index.php (located in lines 136 -161). This syntax it's currently using is called Nowdoc in case you're wondering. |
Gary Hagon
Angry Hobos Interstellar Hobos
0
|
Posted - 2011.09.13 21:23:00 -
[18] - Quote
I have not gone live on the code yet, still looking over the code and wondering how I can break it .
I am placing it live tonight and might try to make it plug into a modular with CSS similar to the EVE dev kb layouts.
Ill be online and on TS3 around 23:30 EVE Time, you have my details |
MisterMagotchi
B4D W0LF B4D W01F
4
|
Posted - 2011.09.13 23:44:00 -
[19] - Quote
Do whatever you want to with the code, but I will have no part of helping you use the Smarty templating engine like EDK uses. Also, this is incredibly easy to customize. There's only one end-user-facing page ('index.php"), and you can make it reference whatever stylesheet you want or just edit the style block in the header. |
Gary Hagon
Angry Hobos Interstellar Hobos
0
|
Posted - 2011.09.13 23:47:00 -
[20] - Quote
I noticed that bud thats what made me think about doing it.
Installing it now and myself plus my alliance members will be trying to break it.
I mentioned the ts3 incase you want to try breaking it yourself... lol |
|
MisterMagotchi
B4D W0LF B4D W01F
5
|
Posted - 2011.09.13 23:48:00 -
[21] - Quote
Also, so far I've had 19 registrations since I started using the new version (which is immediately after I published it last night), and it's working great so far.
Eventually I think I will make it so the registration page verifies that the TS Unique ID exists in the TS database (meaning the user has at some previous time joined the TS server). This should further prevent mistakes. Right now if they enter a bogus TS Unique ID (like one of my guys that entered just his name he uses in TS), nothing ever tells them its incorrect; they just don't get any TS rights until they fix it by re-registering. |
Gary Hagon
Angry Hobos Interstellar Hobos
0
|
Posted - 2011.09.14 00:36:00 -
[22] - Quote
Quick question, Is there a way to make this script a standalone registration page? Im looking into it now, but dumbass me keeps on breaking it....
meh... Ill figure it out sooner or later. |
Gary Hagon
Angry Hobos Interstellar Hobos
0
|
Posted - 2011.09.14 00:56:00 -
[23] - Quote
dude, i was taking another look at the new code and i realized something that made me do a "double take"....
This can easily be integrated into the registration script and your admin script can easily be integrated into the ACP.
Im going to try to make a pre-packaged and fully installable phpbb3 with that installed.
Ill let you know what happens
|
Gary Hagon
Angry Hobos Interstellar Hobos
0
|
Posted - 2011.09.14 04:02:00 -
[24] - Quote
Suggestion for next release:
Allow us the option to specify what group they are placed if they fail the API check.
If you need me to elaborate more, eve mail me.
Besides that one little missing feature, I must say you really outdid yourself... |
Drake Draconis
Shadow Cadre Shadow Confederation
1
|
Posted - 2011.09.14 04:55:00 -
[25] - Quote
HOLY #### this is awesome.
I'm gonna have to make a new set of boards to test this out!
Some questions:
1: Is this FRIENDLY when it comes to PHPBB Official Update packages... as in it won't go ape-**** crazy if it patches as they regularly do release updates. (Last API Mod caused me to scrap Databases on a regular basis... utter pain-in-the-ass)
2: Is there a way to shutoff the Teamspeak 3 portion as we do not use TS3 (Shadow Confederation)
3: Is it possible to configure the API checker to multi-corps/multi-alliances?
4: I don't understand the bit about a separate registration page... can you clarify? Will it require modifications to make it work? This also include the ACP As well?
5: Can it be installed on an already active DB/Forums?
6: Last but not least...willing to give me some minor coaching's on some specific customizations such as getting cron to email me? Linux docs can be confusing at times.
Thanks so much for your time and patience. |
Gary Hagon
Angry Hobos Interstellar Hobos
0
|
Posted - 2011.09.14 05:40:00 -
[26] - Quote
Drake Draconis wrote: 1: Is this FRIENDLY when it comes to PHPBB Official Update packages... as in it won't go ape-**** crazy if it patches as they regularly do release updates. (Last API Mod caused me to scrap Databases on a regular basis... utter pain-in-the-ass)
2: Is there a way to shutoff the Teamspeak 3 portion as we do not use TS3 (Shadow Confederation)
3: Is it possible to configure the API checker to multi-corps/multi-alliances?
4: I don't understand the bit about a separate registration page... can you clarify? Will it require modifications to make it work? This also include the ACP As well?
5: Can it be installed on an already active DB/Forums?
6: Last but not least...willing to give me some minor coaching's on some specific customizations such as getting cron to email me? Linux docs can be confusing at times.
Drake, I will gladly be willing to help you out.
Answers to your questions...
1. From the looks of the script, it should keep functioning no matter what unless an update modifies the name of a table or its structure. Most updates these days are related to the internal php code, not the tables. So I think it would be safe to say this mod would be reliable over updates.
2. I haven't tried but I would think that commenting out the ts3 portion would do the trick. I will look into this when I work on the ACP mods (keep reading)
3. Yes, You can set this up for as many corps/alliance as you want. I currently have this setup working for 5 corps in my alliance, and 8 blue corps. It would be safe to say the limit is infinite.
4. No modifications are needed. What happens is they register normally through your phpbb, then they log in, click the link, and enter the needed details. When it comes to the separate reg page, my guess is to make it so that you can take almost any theme straight from phpbb.com and deploy it. There is no direct ACP controls but there is a stand alone admin page that will allow you to view all the data in the system. I am working on a ACP mod that will do the same.
5. Yes. I was easily able to install and employ this setup on a live database in about 15 minuets with no issue.
6. Hit me up in-game and I will gladly get you set up, If needed, I do TS3, forums and Kb hosting for ISK at affordable rates. (I will mail you tomorrow) |
Gary Hagon
Angry Hobos Interstellar Hobos
0
|
Posted - 2011.09.14 06:33:00 -
[27] - Quote
Found what looks to be a glitch in the system. When updating TS UID info, its possible to have multiple clients registered, but only the most recent uid will be removed from the TS3 groups.
Suggested fix: When users update their API info via the index.php page, do not overwrite the old UID. When it comes time to deactivate their account, have the system attempt to remove all the associated UIDs from the system.
I can elaborate more tomorw at 23:30, im wiped out... (2 am!)
This is the only bug I have found so far. I must applaud you |
MisterMagotchi
B4D W0LF B4D W01F
5
|
Posted - 2011.09.14 07:04:00 -
[28] - Quote
Gary:
I don't know what you mean by "standalone registration page". The registration page is a completely separate page from everything else as it sits now.
I don't think it's a good idea to integrate the registration page too heavily into the registration process of phpBB. I made it a separate page on purpose in order to allow users to register as many times as they want if they lose access due to key issues, if they want to change the character they have registered, etc.
If you want to integrate the registration list into the ACP, that's your prerogative, but for ease of installation and to avoid update breakage, I think leaving it separate is the best option. It also allows me lots of flexibility in writing the code the way I want it and not be bound by phpBB's inner-workings.
Currently if they fail an API check, they are removed from all TS and forums groups except those in the ignore list in config.inc.php. Making them then then join some other group is doable, but I don't see the point, and it's more work than I want to do. You're welcome to add that feature to yours if you like. A person can fail an API check for a number of reasons. It can expire. They can lower the rights to less than the required minimum. They can leave the corporation. They can quit paying for their account. There are probably also other reasons. Just letting them revert to Guest seems totally reasonable to me.
Drake:
Thanks.
1. It shouldn't, as the only modification it makes to the database is the addition of the one table (EVE Registration). If phpBB does end up releasing a new version where they change the names of the data fields related to sessions, usernames, and groups, I'll have to make a fix to support it, but I doubt it as phpBB is a very mature piece of software.
2. It's not possible in the config, but someone who understands the basics of phpBB should be able to strip out the parts related to Teamspeak. The code is all commented. I don't plan to remove the Teamspeak integration or make it optional, as there are other phpBB EVE registration systems which are likely better suited to only being used for that purpose.
3. It supports an unlimited number of corporations to be configured.
4. By separate registration page, I mean that the API registration is independent of the phpBB registration. A forums user can do the API registration as many times as they'd like.
5. Yes, and it's no different than installing it for a fresh phpBB install.
6. I could help you with it. For starters, by default, cron emails to the Linux user who owns the crontab that called the job. On many systems, having a ".forward" file in the user's home directory with an email address to forward mail for that user to will do just that. It really depends on your system. Linux comes in a lot of flavors. In something like cPanel, you can set the email right in the interface I believe.
No problem.
Gary:
2. True, but there are parts of index.php that reference it, and even bigger parts of check-users.php that reference it, including MySQL code that mixes references to TS with references to the forums. Certainly it can be edited out, but it will take some minor finessing, and I don't want to mess with it and have to maintain two editions, or add what I think is unneeded complexity by allowing for it to be disabled.
4. True, but my reason for the separate registration page is that I want people to be able to fix their own registration problems with little or no help from admins. With a separate registration page apart from the phpBB registration, users can register over and over again to their hearts content (if they want to change or fix things).
Regarding the glitch you say you found, you'll have need to explain that more thoroughly. Here's how the system works as it pertains to users updating their TS UID via the registration form: When a user submits their data, the system verifies that no other forums user is already using the TS UID they entered, then it checks their API information again to be sure it works and they're in a registered corp., then it updates their forums username, then it does a MySQL "REPLACE INTO" operation into the EVE Registration table with all of their data. REPLACE in that context is just like INSERT, but if the data being inserted conflicts with any column that's marked as unique in the table, the entire row gets replaced with the new data. The TS UID and User (phpBB user ID) columns are both unique keys, so the system will not allow duplicate TS UIDs in the table. As I didn't really understand what you meant, I just did my best to explain the process here again.
Thanks. |
MisterMagotchi
B4D W0LF B4D W01F
5
|
Posted - 2011.09.14 07:26:00 -
[29] - Quote
New version released.
From my changelog:
"2011-09-14 - 1.52 - Registration form script now verifies that the TS UID entered is recognized by the TS server (meaning the user has been in the server before and the UID is correct) and gives them an error otherwise. The instructions were clarified a little more on the registration page. Other minor typo fixes and code cleanups."
Changed files (just replace them): admin/index.php , index.php , check-users.php , setup.inc.php , readme.html |
Gary Hagon
Angry Hobos Interstellar Hobos
0
|
Posted - 2011.09.14 14:25:00 -
[30] - Quote
Thanks for the update and your input on the extremely long post
Oh, and you mentioned two different editions, it could be possible to simply make a boolean style selection in the admin page to enable/disable the ts function.
In my honest opinion bud, what you have now is EXCELLENT! Myself and a few buds are using this script as a base for a few additional projects.
Oh, something I noticed that my be useful to mention in the comments, you can get your corp ID from dotlan maps =) Made my life much easier. (compared to running through the API xml).
Thanks bud |
|
|
|
|
Pages: [1] 2 3 4 5 6 :: one page |
First page | Previous page | Next page | Last page |