public static int newUser(this TM_UserData userData, string username, string password, string email, string firstname, string lastname, string note, string title, string company, string country, string state, List <UserTag> userTags, int groupId)
{
var userId = Math.Abs(Guid.NewGuid().hash());
"Creating new user: {0} with id {1}".debug(username, userId);
if (groupId < 1) //set default user type
{
groupId = 2; //by default new users are of type 2 (i.e. Reader)
}
else
{
UserRole.ManageUsers.demand(); // only users with UserRole.ManageUsers should be able to create non-default users
}
var tmUser = new TMUser {
UserID = userId,
UserName = Encoder.XmlEncode(username),
FirstName = Encoder.XmlEncode(firstname),
LastName = Encoder.XmlEncode(lastname),
Company = Encoder.XmlEncode(company),
Country = Encoder.XmlEncode(country),
State = Encoder.XmlEncode(state),
GroupID = groupId,
Title = Encoder.XmlEncode(title),
EMail = Encoder.XmlEncode(email) ?? "",
UserTags = userTags
};
tmUser.SecretData.PasswordHash = tmUser.createPasswordHash(password);
userData.TMUsers.Add(tmUser);
if (TMConfig.Current.windowsAuth().isFalse())
{
SendEmails.SendNewUserEmails("New user created: {0}".format(tmUser.UserName), tmUser);
}
tmUser.logUserActivity("New User", "");
tmUser.saveTmUser();
return(userId);
}