Web-Based User Registration

I’'ve tried searching through numerous locations, to no avail on this.

I am using Jive Messenger 2.1.3 and Pandion 2.1.2 beta. The signup option in Pandion creates a blank account, with only the username/password. I was looking to possibly use the Create User form from the Admin Console on my website so users can signup right from the website before downloading the client.

I’‘m running Windows Server 2003 and IIS 6 with ASP. Is this possible to do? I would also like to make a change password form as well, and possibly a password reset but for now I’'d like to start with account creation. I know there is a called the Jabber Registration Tool, but this works only in PHP/PERL/CGI.

Thank you for you’'re time and support.

-Dustin

We actually did just this. We wrote a web-app in C# that uses the standard SQLServer DB connectors. It collects basic information from the user, and then writes this information directly to the jiveUser and jiveVCard database tables. It then generates an exodus config with the collected relevent information and writes this config to the users workstation. Lastly it starts up the exodus client.

Totally automated user creation and software installation/configuration.

We also disabled user creation in the admin console to force users to use our registration web-app.

So what you are looking to do is possible, and not too tough either. If you need some more information just let me know.

I’‘m using MySQL for the Jive Database at the moment, so I’‘m not sure if that makes any difference. As for my website, I’‘m only running basic static HTML. I haven’'t switched it over to ASP, since I have never done it before. I only use an ASP form for our sendmail program.

I wouldn’'t need anything to be sent to the users, as I already have customized the Pandion setup for my needs. All I need is a web-based signup, pretty much like what you have mentioned in the first paragraph.

Is it hard to create/impliment?

Before we switched over to Jive Messenger we were using Jabberd2/MySQL and the .NET MySQL connector for our registration web-app.

If you have done any .NET development before it should be very easy. There is tons of documentation around, both from Microsoft and MySQL.

All you really have to do is store the entered information (username, password, etc…) in a variable and then use those variables in the SQL INSERT statements.

Here is the MySQL .NET connector and documentation:

http://dev.mysql.com/downloads/connector/net/1.0.html

http://dev.mysql.com/get/Downloads/Manual/connector-net.pdf/from/pick

After re-reading the MySQL .NET docs this is how you would do it (in pseudocode):

Create a data entry screen that collects:

Username

Password

Full Name

E-Mail Address

Then you would store all that input into variables:

varUsername

varPassword

varName

varEmail

Then create the SQL statement with the variables:

string InsertQuery = "INSERT INTO jiveUser (username, password, name, email, creationDate, modificationDate) VALUES (varUsername, varPassword, varName, varEmail, 0, 0);

If you set the creationDate and modificationDate values to 0, each user will show up in the admin console as being registered on Jan 1 1970. To fix this we found some C# code that took the current date and converted it to the number of miliseconds since Jan 1 1970 (aka unix epoch) and then 0 padded it to 15 characters.

Unfortunately, I haven’‘t done anything with the .NET framework. As I mentioned, I’‘m just getting into ASP so there’'s alot of unknowns to me at the moment.

I don’‘t suppose you would have a test page to give me an idea on where to start. Even MySQL is new to me, since I’'ve never worked much with databases accept a little in MS Acess (very little.)

I was trying to figure out the jabber:iq:register command and what it entails. I was hoping to create some simple web form like the one in the Admin Console : Create User.

I’'ve been trying to following the information I found about this:

Tutorial - Create Your Own Jabber Client With IP*Works!

http://www.nsoftware.com/kb/tutorials/jabber.aspx

The information seems straightforward, but the language and set is where I scratch my head. I’'m a straightforward MS System Admin/PC Tech so I know the Windows platform and hardware. When it comes to database and script language ::scratching head::

FYI - There is a MySQL date function that converts from the date/time format to unix format…

UNIX_TIMESTAMP(date)

So the insert is…

string InsertQuery = "INSERT INTO jiveUser (username, password, name, email, creationDate) VALUES (varUsername, varPassword, varName, varEmail, UNIX_TIMESTAMP(SYSDATE()));

Don’'t need to set the modification date.

According to the Java docs, the getTime() function returns the number of millisecods since January 1, 1970, not the number secods like in UNIX time.

http://java.sun.com/j2se/1.5.0/docs/api/java/util/Date.html#getTime()

I took a quick look at the MySQL docs, and it doesn’'t look like there is a function built-in to MySQL that would convert the date to milliseconds. Too bad.

The following Kbase document describes how to convert between Java time format and the MySQL time format:

Regards,

Matt

Don’'t know if this is any good to you if you are not a programmer, but

http://www.jivesoftware.org/smack is a small java library which has a full API to allow account creation and setting of as many user properties as you like without having to get into the nitty gritty of firing data directly into the messenger database.

You can embed it directly in JSP pages - heck it will save you having to learn ASP anways