for me, I would create a custom webpart that holds the UI stuff. It would connect to a list. On the list it would have the username or ID and the correlating info:
ID/name , text 1, text 2, text 3
when the user logs-in and goes to a page where it contains the webpart it would connect to the list and looks for the given user to pull out the info ready for edit or deleting, if the user doesnt exist in the list than its a new user so a new row ready to add in the details.
add to list:
Web Part Data into Sharepoint LIst
webpart properties
Question about webpart properties
your probably wondering how to know what webpart correlates to which column text? well easy... add a webpart property that you can manually add in when editing the webpart, it can be a simple textbox that you can add the name of the column or column index number!
as for the admin within the creat child controls it can call the full list for all users or all users but only for a given column (same concept as above), so instead of just for the user its for all users!
i wrote this to return a admin within a group, you need to create a group specifically for admins who would have access to the full list, if the group doesnt exist than it would return full access to all users, you only have to pass in the user name:
/// <summary>
/// returns true if user is in admin group, also returns true if no group exists
/// </summary>
/// <returns></returns>
public static bool getAdminUserAccessFromGroup()
{
using (SPSite site = new SPSite(SPContext.Current.Site.Url))
{
using (SPWeb web = site.OpenWeb("smallChange"))
{
SPGroupCollection spgr = web.Groups;
int i = 0;
foreach (SPGroup gr in spgr)
{
if (gr.Name == "GroupAdmins")
{
i++;
if (gr.ContainsCurrentUser)
{
return true;
}
}
}
if (i == 0)
{
return true;
}
else
{
return false;
}
}
}
return false;
}
to use it, anywhere where you want to have admin stuff:
if (getAdminUserAccessFromGroup() == true)
{
//admin stuff
}
else
{
//user stuff
}
the code above is looking for a group called "GroupAdmins", if the user is in the group than it would do the admin stuff, like get full list of all users, if not than it would show only specific items for the given user!