Click here to Skip to main content
15,892,199 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
we using bulk user upload using excel, the field name is Username, Email, fname, lname, Role1, Role2 and Role3.

The username, email,fname, lname saving the data in db its working fine.

How to assign the 3 roles in single user.

I using below code

What I have tried:

C#
var newUser = new UserInfo{ 
UserName = userDto.UserName,
FirstName = userDto.FirstName, 
LastName = userDto.LastName, 
Email = userDto.Email, 
SiteIndependentPrivilegeLevel = CMS.Base.UserPrivilegeLevelEnum.None }; 
var newUserSettings = newUser.UserSettings ?? new UserSettingsInfo(); 
UserInfoProvider.SetUserInfo(newUser);
 UserInfoProvider.AddUserToSite(newUser.UserName, site.SiteName); 

var role = new RoleProvider().GetAllRoles(site.SiteID) 
.FirstOrDefault(r => r.Description == userDto.Role1); 
// .(r => r.Description == userDto.Role1, userDto.Role2, userDto.Role3); 

UserInfoProvider.AddUserToRole(newUser.UserID, role.ID);
 return newUser;
Posted
Updated 29-Aug-19 22:30pm
v2
Comments
Richard Deeming 29-Aug-19 11:40am    
You've already got the code to add the user to a role - you've done it for Role1. What's the problem?
Member 14557688 30-Aug-19 4:19am    
I need to add more specific role

1 solution

You just need to loop through the results of GetAllRoles() method result and then assign the available roles to the user. For example:

C#
var roles = new RoleProvider().GetAllRoles(site.SiteID);

foreach (var role in roles){
   UserInfoProvider.AddUserToRole(newUser.UserID, role.ID);
}


Note that the code above will assign all the roles to the user. If you want to add specific roles to the user, then you need do some checking first.
 
Share this answer
 
v3
Comments
Member 14557688 30-Aug-19 4:16am    
I need to add some specific role to the user
Vincent Maverick Durano 30-Aug-19 13:49pm    
Then you need to check that specific roles first before you add it to the user.
Member 14557688 3-Sep-19 4:26am    
I using below code not assigning the roles.

var rolelist = new[] { $"{userDto.Role1}", userDto.Role2, userDto.Role3}
.Where(af => !string.IsNullOrWhiteSpace(af));

foreach (var u in rolelist)
{
List<string> userRoles = new List<string> { userDto.Role1, userDto.Role2, userDto.Role3 };
foreach (string r in userRoles)
{
var roles = RoleInfoProvider.GetRoles().WhereEquals("LOWER(RoleDescription)", r.ToLower()).FirstOrDefault();
if (roles != null)
{
UserInfoProvider.AddUserToRole(newUser.UserID, roles.RoleID);
}

}
}
return newUser;

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900