Hello,
I have a particular use case that I would like to throw out, along with a couple ideas on ways to implement to see what comes up.
I am creating a service which allows users to input data and utilize MS Reporting Services to report/analyze the data. Sounds simple enough, right? The hitch is that I need to add another level of authentication. Roles and permissions are predefined in the application, but the customer will be able to create their own logins and assign role(s) to them.
This would be the extent, however, that each customer would be able to manage their application. Application administrators will not have the ability to add, delete or modify pages within the application or perform any other typical admin tasks.
Option 1
I've seen some modules which basically allow a portal admin to delegate user management to another portal user. With this in mind, I could:
- Create child portals for each customer.
- With each portal create a new user which has application admin rights (as opposed to portal admin rights)
- Create a module which allows application administrators to manage their logins and associated role(s).
The problem with this approach is that each child is an independant entity as far as content goes. I can create a site template, but propogating any future changes would prove difficult at best (there will likely be hundreds, if not thousands, of customers using this application).
Option 2
Create a new table in the DNN database which creates a hierarchy of users. The table has 2 fields ParentId and UserId. Both fields are foriegn keys to the user table itself, but allows a relation ship to be created between users.
With this method, I can utilize the existing security providers and will only need to create a module which allows a "parent" user to manage their "child" users.
Option 1 is nice because it lends itself the most flexibility down the road, but unless I can get a way to keep every child an instance of the parent, then I don't think it's going to work well.
Option 2 seems to be the most straight forward, but I need to try and poke holes through it before committing.
Anyone else have any other options, suggestions, ideas that helps me think outside the box?
Thanks a million.
Kevin