I'm extremely disappointed to inform everyone that stringed.org has been treated to a significant upgrade... a security system. Well, I simply use the same security system as I had for this site, made no modifications to the inner code (since it's perfect), and now I have a per item per operation security system in place for stringed.org.
That "per item per operation" bit might be confusing. Basically, say I want to allow someone to edit News but not be able to delete it. Or to have full permission for News, Photo Albums and Polls but not for Downloads. I can do all that and I didn't have to change the old security system that I built. Why? Well, I would start out by saying I've seen quite a few hand built security systems in my 4-5 years in the professional business of software development to know what works and what doesn't. Or to pick the pieces that work from other security systems that might not be that great overall. As Picasso says, "Good artists copy, Great artists steal."
So what else is new with it, you ask with desperate anxiety... Hmm. I have listeners in there for when objects are saved and deleted. This is more for editing the security system, since it's kept, for quick lookup, in the application map. If I don't reload the registry after making a change, that change never takes place, as far as the security system is concerned. Also, it will be an important piece behind "Attachments". Although, I might just write a new engine for that.
Also, since you're dying to know, there was a bug on the form when I had two dual-select lists. Fortunately, this bug never made it off of my computer, as my wicked javascripting skills extinguished it when I found it. I have two dual-select lists on a "SecurityGroup" object, since Groups have a list of Privileges and also a list of Users. I've said too much :p
I had debated trying to create a new security system. This would be so I wouldn't have to create a new menu system, as the menu system relies heavily on the current security system. So, since I didn't want to write a new menu system, and a new security system, I was forced to think brilliantly into the current solution that doesn't change anything and does not restrict anything either. The menu will work, the forms will work, and the rest of the site will work just as it's supposed to, as you can see by going to this page. You will see "You are unauthorized to see this page." or something.
One other helpful change is for the lists that list an object that might have the same name as another object in the list, but have a foreign key "parent" that will be different. On the old version of the site, if you go to add a library, it lists books with just their title. But, you can't tell who wrote those books without first going to the book list and seeing. Now, they are listed with their "parent", in a book's case, Author. So, my book shows up as "Jason Connell - Orientation of Objects". You can see this illustrated here, along with the two dual select lists on Group. Basically imagine the list being "view add delete edit view add delete edit view add delete edit". That's why I added that :) But also, you can see it in my User list... A User for stringed.org has a foreign key to Author, making Author it's "parent", so now, the User will display "Author Name - Username".
It's pretty sweet. I am trying to think of other stuff that I did for it. I didn't have that much time this weekend with my neice Megan's Christening, hanging out with Kira, Caden, Ethan and Danny, and my brothers, watching lots of college basketball, etc. This week should be a big time of productivity, since I can finally start on Attachments!! They'll be neat.