public static User RegisterUser(string fullUserName)
{
if (string.IsNullOrEmpty(fullUserName))
{
return(null);
}
var slashIndex = fullUserName.IndexOf('\\');
var domain = fullUserName.Substring(0, slashIndex);
var username = fullUserName.Substring(slashIndex + 1);
var user = User.Load(domain, username);
if (user != null)
{
return(user);
}
try
{
AccessProvider.Current.SetCurrentUser(User.Administrator);
var dom = Node.Load <Domain>(RepositoryPath.Combine(RepositoryStructure.ImsFolderPath, domain));
if (dom == null)
{
// create domain
dom = new Domain(Repository.ImsFolder)
{
Name = domain
};
dom.Save();
}
// create user
user = new User(dom)
{
Name = username, Enabled = true, FullName = username
};
user.Save();
Group.Administrators.AddMember(user);
}
finally
{
if (user != null)
{
AccessProvider.Current.SetCurrentUser(user);
}
}
return(user);
}