[IP.Board application] Forum integration - syncApp

[CENTER]http://i.imgur.com/ADd9D.png[/CENTER]
[CENTER][SIZE=18px]SyncApp[/SIZE][/CENTER]
[CENTER][SIZE=12px]Made by: Zze[/SIZE][/CENTER]
[SIZE=10px]Credit / Thanks to: Marcher Technologies[/SIZE]

[CENTER][SIZE=14px]Tested on IP.board 3.3.1 - 3.3.4[/SIZE][/CENTER]
[CENTER][SIZE=14px]syncApp · GitHub[/SIZE][/CENTER]
Releasing a somewhat stable version of my opensource account bridging application for IP.board and TrinityCore.

Whats it do?

Integrates forum and game account’s; syncs account creation, account managment for admins and users (changing passwords, groups, etc).

[ul]
[li]Single Account registration.[/li][li]Group management. (Promote, Depromote, Ban).[/li][li]Single/Mass Account deletion.[/li][li]Bulit in SOAP Capability…[/li][li]User account management, Password change, (name change [SIZE=10px]*coming soon[/SIZE]), The ablity to associate accounts, within existing forums and/or account databases.[/li][li]In-game character services like revive, and documentaion on creating your own custom ones![/li]
[li]All bulit right into IP.board as an application.[/li]
Please ask any questions or leave comments below. suggestions welcome!

*Please note: this is not a final version… just a stable release for getting feedback! basic install Instuctions for adding this to IPB can be found in doc/Doc.pdf within the download. *USE AT YOUR OWN RISK!*

Will be touching this post up as I fix up documentation, readme files, etc..

[CENTER][SIZE=24px]Download![/SIZE][/CENTER]

[/ul]

This looks like a great module, however I am having issues getting it to work. Does the ipboard and the trinitycore server have to be on the same server? Right now I have ipboard on one server, and trinity core on another. Also how do i configure SOAP to work with trinitycore? I don’t understand Soap IP, user, or password…? Thank you for making this though, will be totally sweet when i can get it to work!

ok, I figured out to enaple soap in worldserver.conf, so now my question is the soap user and password just a valid trinitycore user?

Thank you.

thats fine, they do not need to be local. just needs the ablity to comunicate… make sure port 7878 is open to the IP of the IP.board… and you are configuring SOAP from trinitycore to bind through the proper IP; allowing IP.boards connection to it.

Yes this is true, also the account will need GM level 3. or other wise permission to .account delete, .account set password & .server info

got this mod working, and its great! Thanks so much. I have a couple of issues that should be noted though…

  1. when user initially creates account in IPB, the password does not match up in trinity and the user cannot log in. If the user then changes their password again in IPB, they are able to log in. So there must be something wrong with the password hashes on the initial account creation.

  2. Also it should be noted that usernames with spaces do carry over as they should, but I could not get logged in, because I assume trinity does not support usernames with spaces. When i tried to change my password in IPB, i got some database error (that I should have screenshotted). So I just disabled usernames with spaces in IPB. it also made a bunch of “ghost” entries in the syncapp_members table that could have caused problems later on, so I just deleted those entries.

  3. Also would like to note that it might be a good idea to create a special account just for this module, as when i first set it up i was using my account and when i changed my password in IPB, I lost connection to the server because it still had my old password in the module! Anyways, just thought I should mention that.

Overall great work on this mod, it was exactly what I was looking for, should lead to some interesting site setups!

Bryon

great! I’m glad to hear its working /emoticons/default_happy.png. and your very welcome.

I was up late regoing through memberSync.php code, I had thought it would be possible un-strtoupper the username and password before hashing, for more possible character combinations… didn’t give it a test and pushed, an that was the mistake. Should be fixed now.

yea, this has to be handled through IP.board username restrictions… I can’t tell IPB to throw an error at the point of execution of my code. So you’ll need go to System Settings > Members > Username Restrictions and limit usernames to alphanumeric.
Actully, thank you for mentioning this. I should add this in the Doc.pdf and README file…

having trouble replicating this issue can you please explain exactly what you did?

the module dosen’t need an account? I dont think i fully understand what you mean. but typically the first forum account is the root ‘Admin’ account so kinda built it around the idea that account wasn’t being used between server and forum. just for forum administration, and other accounts added after dealing with both… although, I see how functionly speaking that causes confussion/problems, I’ll try make sometime to figure it out, an fix that. /emoticons/default_smile.png

the module dosen’t need an account? I dont think i fully understand what you mean. but typically the first forum account is the root ‘Admin’ account so kinda built it around the idea that account wasn’t being used between server and forum. just for forum administration, and other accounts added after dealing with both… although, I see how functionly speaking that causes confussion/problems, I’ll try make sometime to figure it out, an fix that. /emoticons/default_smile.png

What I am talking about here is in the module configuration, specifically the SOAP user field. If you set this to an actual playing user that is synced between IPB and trinity, if you change your password in IPB it will break the connection to SOAP, because the module configuration will still be using the old password.

having trouble replicating this issue can you please explain exactly what you did?

Initially I created an account named “Bryon Dillon” in IPB, this was before I configured user name restrictions. It did create the user “Bryon Dillon” in the trinity user database, but I could not log in. So i tried to change the password, and it gave me an error, (the database error that I should have took a screenshot of). So i deleted the user “Bryon Dillon” from the admin cp, but it did not delete the user from the trinity database. So I just manually deleted the row from the trinity database. After I created this user I noticed that it made a bunch of weird associations in the syncapp_members table. also I am wondering if when I delete a user, is it actually deleteing that row in the syncapp_members table? The extra rows could have been from test users that I was creating and deleting trying to troubleshoot the module initially.

because I had broke the hashing(now fixed)… also just tested mannually inserting a record with Username:‘test t’ and it authenticated fine,[ATTACH]552._xfImport[/ATTACH] so spaces aren’t a problem.

Must have been caused through the association, the table wasn’t properly created? I’m not sure I need to create a database error logging bit… :S still things to be worked out.

ummm your actully right I’m not doing anything with sync_members on delete /emoticons/default_wacko.png
Momment I’ll be pushing a fix

EDIT: Fixed.

It’s funny, I dont really know much about coding at all. But I am REALLY GOOD at breaking things! =) Thanks for working out these fixes for me, it will end up making managing accounts on my server so much easier! /emoticons/default_smile.png

ok, I have another issue… I have created a new member group on my forums “Game Developer”. When I go to edit the syncApp permissions tab for this group, I change the server permissions group to members and click complete edit. When I go back and edit the permissions again, it is set to administrator… So it is not saving my settings. Let me know if you need more infoalso i should mention that I am using ip.board version 3.3.4

Just noticed, all groups I cannot change the server permissions group, it just always goes back to Administrator. When a new user registers, even though it is defaulting at administrator, it is just registering them as a member.I dont know whats going on here now

Basically thats due to the lack of documentation and me undertanding the way IPB deals with forms…

$form_server_prem = ipsRegistry::getClass('output')->formDropdown( "syncapp_server_prem", array( array( '3', 'Administrator' ), array( '2', 'Moderator' ), array( '1', 'Member'), array( '0', 'Banned' ) ) );Administrator is just the defualt, not the current value.

anyway, if you want see the current values you can go into your cache managment.

Tools & Settings > Cache Management > group_cache and look through there…

(you shouldn’t have to, but if you want to…)

Just set each group as you did and try things out… should be working… But I’ll add getting that fixed to the todo list, so instead its displaying the actual value.

Fixed.

Thank you o0Loco0o for the contunined testing. /emoticons/default_happy.png

In my opinion the SOAP account shouldn’t be a player account nore have a forum attached account… simply a SOAP account.

I am not so sure how this would work, as I am new to this SOAP business and wouldnt even know where to create a SOAP account. Also you mentioned earlier that the SOAP account needed to have permission to add and delete accounts in Trinity, so I dont know how this would be possible without having a trinity account. But then again, I dont understand how most of this stuff works =)

Think of SOAP as a comunication layer between the two… through this layer we are able to send commands to the server as if we were connected in game playing… or better yet, sitting at the terminal window waiting to imput commands. So really the account is nothing more then a user, with GM premissions. Excpet due to the nature of its use I’d suggest having it as its own account used for exactly that.
Other sidenote:

The problem with using SOAP commands to do this… Is say the communication is broken for somereason… (server is offline) I CAN’T throw an error saying we weren’t able to delete the account for the trinitycore stop everything!.. And so what happens is the account for Ip.board will get deleted but not the trinitycore account. (NOT good.) :confused:

Couldnt you make a script that is executed with cron to check the syncapp_members tables vs the trinity core users and have it do cleanup once a day or so?

fixed this, with an IF statement to check if the SOAP command successfully sent, IF not mark each row for deletion. Also, created a task to check for those records marked for deletion, an will attempting to re-delete them every hour. /emoticons/default_smile.png

Edit: *now logging accounts deleted. To view, go to → Logs > System Schuduler > syncApp…

*Also, fixed up a few typos… the last few pushes got a bit jumbled up (my own fault).

removed code from github. I’ll be re-releasing it when everything is abit more cosmetically pleasing and the ACP is complete.

[SIZE=12px]Moderators feel free to delete this thread.[/SIZE]

Hello, just an update. I haven’t stopped working on it, I am stuck trying to add multi-realm support /emoticons/default_unsure.png so if someone with java or ajax knowledge is willing to give me little help with this?

I have an array bulit with all the realms within the database but I am not able to take that array and bassically make something like this http://bonrouge.com/~chain_select_ajax

I have the first option drop down menu bulit-out using

if ($current_area == ‘gamecp’)
{

Sql connection

$realm_list = array();

ipsRegistry::DB(‘world_DB’)->build(array(‘select’ => ‘*’, ‘from’ => ‘realmlist’));
$rlist = ipsRegistry::DB(‘world_DB’)->execute();

while( $realms = ipsRegistry::DB(‘world_DB’)->fetch($rlist))
{
$realm_list[$realms[‘id’]] = $realms;
}

if(count($realm_list)>0)
{
$r = array();
foreach($realm_list as $realm)
{
$r[$realm[‘id’]] = ‘’.$realm[‘name’].‘’;
}
}

and then within the the skin templete:

<foreach loop="hookPoint:$r as $ke => $value"> {$value} </foreach> [/html]

This will give the 1st desired drop down list with the realm id’s as the value. I’m having trouble getting the rest to play out. If someone could please help, I’d be very thankful.

[hr][size=3]PS: side note instead of building an ACP member managment module, I’m going to push for adding it as a tab to the moderator control panel.

bassed off: http://community.inv…sion-modcp-r782[/size]

[SIZE=12px]Started characterCP implementations.[/SIZE]

[ul][li][SIZE=12px]Added in basic concept for multi-realm character selection through association.[/SIZE][/li]
[li][SIZE=12px]Added Revive and Unstuck functions.[/SIZE][/li]
[li][SIZE=12px]Tinkered account sync.[/SIZE][/li]
[li][SIZE=12px]Added skin bits.[/SIZE][/li]
[/ul]

exciting stuff, cant wait to check it out!

Simple: How to add custom functions to characterCP