User permissions is perhaps the most difficult thing to code correctly in either version of ConTrak. In ConTrak v1, users could have permissions by one or more of four ways: permission for the con, role for the con, permission for the convention type (con type), and role for the con type. That meant I ended up building many large union tables to get everything working for ConTrak v1.
For ConTrak v2, I will simplify it: A user has permissions for a convention and could also have a permission template for when new conventions are created (which will then be copied into the active permissions for that new convention). It's a lot simpler. Or so I would think...
I have no idea why, but I created the template table to refer to individual conventions. Building on that brain fart, I created queries to join the template and permission tables together and even went so far as to create a complete working model of the ConTrak v2 permission code base! It was only later I caught the error. That means I'm going to have to go back (later, but before I do anything else) and re-code the permissions stuff.
If that wasn't bad enough, I have the ConTrak sysadmin, convention owner, and convention admin accounts to worry about. I began implementing some code, and after a few acceptable errors got that working. I then created code for the sysadmin account. That went to pieces! I wasn't calling the correct object, I confused object names, didn't increment properly, and, well, I just made too many simple mistakes that I should have never made.
Yep, it's time to take a break...
For those of you curious what I'm doing with this version of ConTrak at the moment, I will oblige:
I have created the page template. Some people want it formatted just a tad differently. I see the justice, so I will modify it later.
I created the navigation structure. It is mostly AJAX-based (JavaScript hitting the server when the user doesn't know it).
I have a few things spec'ed out: The sysadmin convention list and the Add/Edit Convention Wizard. Isn't that fun: ConTrak gets a wizard. There's a Very Good Reason for it; setting up a convention would be a lot easier with a wizard.
I do not know when I will have an early demo version available of this commercial release of ConTrak. Try June for an early demo (would that count as my CTP?).