Functionality:
This adds a button to the authorization attributes screen of 'Add from DB'. Clicking that button cause a screen much like the 'Add DB Users' functionality. It brings up a list of attributes and values as defined from a user defined SQL function, JUST LIKE the db users functionality. Picking one or more items from the list adds them to the attributes. This allows people who want to authorize people into a 'list of projects' they can access easily. They can do a query in the database to return a list of projects for an admin to chose from. There one additional feature I want to add. The current database function and NetSqlAzMan api is all setup to accept an 'attributeType' parameter. The idea is that another dbfunction would be added to return a list of 'attribute types'. The list might be 'Customers', 'Projects', 'Backlog'. That would appear as a dropdown on the new form I made. By default 'all' would be selected, but picking one of the attribute types would cause the list of attributes to be filtered by that type - effectively giving my a list of projects or customers or whatever instead of one big list.
NetSqlAzMan:
Modified SqlAzManStore and SqlAzManApplication classes and interfaces to have two additional methods.
- GetDBAttributes() and GetDBAttributes(string attributeType)
Above methods implemented in AzManStorageExtension
NetSqlAzMan.SnapIn
Added new form frmDBAttributesList
Put strings for new form into English resource file.
Modified frmAuthorizationAttributes to have new button, call my form and act on changes made.
SQL
New user defined table based function, works just like the dbUsers, but for attributes.
New demo table for the above function.
No other changes.
Note, if users 'upgrade' to this new version, they do not have to do anything. If they do not try to use the new button/functionality, there will be no changes required.
If they want to press that button and have it work, just add the above database info.
The .csproj files show as changed, because I added files. Other than that, the only change I made was to remove the assembly signing, since I did not have a key or password.
I did not modify the Webconsole project - as that is not important to me and I did not want to have to learn how that works too.
You can either add the feature in webforms, or just not have this one feature (for now) available via webforms.
I did not touch the WCF service, so not sure what is required from there. Perhaps nothing since I put the contracts, interfaces and such in place?
I really hope you see the value in this enhancement and will add this to the main source. I do not want to run off a 'parallel' project. I tried to keep the changes simple and to a minimum.
The patch was created based off the March 1st checkin you last did. BTW, consider converting your repository to Mercurial which is better for distributed development and directly supported by codeplex now.