public IHttpActionResult AddRole(MvcRole role) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { RoleManagerBso.AddRole(role); return(Ok(role.Id)); } catch (DbUpdateException dbex) { var internalEx = dbex.InnerException?.InnerException; if (internalEx != null) { if (internalEx is SqlException) { var sqlEx = internalEx as SqlException; if (sqlEx.Number == 2601) { throw new System.Exception(string.Format("{0} already exists. Please use another name.", role.Name)); } } } throw new System.Exception("Add new role failed.Please try again."); } }
/// <summary> /// Update role /// </summary> /// <param name="role"></param> public void UpdateRole(MvcRole role) { UnitOfWork.Repository <ApplicationRole>().Update(new ApplicationRole { Id = role.Id, Name = role.Name }); UnitOfWork.Save(); }
/// <summary> /// Get users who belong to the role /// </summary> /// <param name="role"></param> /// <returns></returns> public List <string> GetUsersByRole(MvcRole role) { var dbRole = this.RoleManager.FindById(role.Id); List <string> mvcUsers = new List <string>(); foreach (var user in dbRole.Users) { mvcUsers.Add(user.UserId); } return(mvcUsers); }
/// <summary> /// Create a new role /// </summary> /// <param name="role"></param> /// <returns></returns> public MvcRole AddRole(MvcRole role) { var dbRole = UnitOfWork.Repository <ApplicationRole>().Insert(new ApplicationRole { Name = role.Name }); UnitOfWork.Save(); role.Id = dbRole.Id; return(role); }
public IHttpActionResult AddActionsToRole(MvcRole role) { try { RoleManagerBso.AddActionsToRole(role); return(Ok()); } catch (Exception e) { return(InternalServerError(e)); } }
public IHttpActionResult UpdateRole(MvcRole role) { if (ModelState.IsValid) { RoleManagerBso.UpdateRole(role); return(Ok()); } else { return(BadRequest(ModelState)); } }
public async Task <IHttpActionResult> AddUsersToRole(MvcRole role) { try { await UserManagerBso.AddUsersToRole(role); return(Ok()); } catch (Exception ex) { return(InternalServerError(ex)); } }
/// <summary> /// Add actions to role /// </summary> /// <param name="role"></param> /// <param name="mvcActions"></param> public void AddActionsToRole(MvcRole role) { var dbRole = UnitOfWork.Repository <ApplicationRole>().GetByID(role.Id); var mvcActions = role.Actions; //add new actions to role if (dbRole != null) { foreach (var action in mvcActions) { if (!dbRole.Actions.Any(act => action.ControllerName == act.ControllerName && action.ActionName == act.ActionName && string.Join(",", action.ParameterTypes.ToArray()) == act.ParameterTypes && action.ReturnType == act.ReturnType)) { var dbAction = this.GetAction(action); if (dbAction == null) { dbRole.Actions.Add(new Models.Action { ActionName = action.ActionName, Methods = action.Methods, ControllerName = action.ControllerName, ParameterTypes = string.Join(",", action.ParameterTypes.ToArray()), ReturnType = action.ReturnType }); } else { dbRole.Actions.Add(dbAction); } } } //remove not selected actions from role foreach (var action in dbRole.Actions.ToList()) { if (!mvcActions.Any(act => action.ControllerName == act.ControllerName && action.ActionName == act.ActionName && string.Join(",", act.ParameterTypes.ToArray()) == action.ParameterTypes && action.ReturnType == act.ReturnType)) { dbRole.Actions.Remove(action); } } UnitOfWork.Save(); } }
/// <summary> /// Add users to role /// </summary> /// <param name="role">role with assigned users</param> /// <returns></returns> public async Task AddUsersToRole(MvcRole role) { string roleName = role.Name; var users = UserManager.Users.ToList(); //remove users from role first foreach (var user in users) { await this.UserManager.RemoveFromRoleAsync(user.Id, roleName); } //add new users to role foreach (var u in role.Users) { await this.UserManager.AddToRoleAsync(u.Id, roleName); } }
public IHttpActionResult DeleteRole(MvcRole role) { RoleManagerBso.DeleteRole(role); return(Ok()); }
public List <string> GetUsersByRole(MvcRole role) { return(UserManagerBso.GetUsersByRole(role)); }
/// <summary> /// Delete role /// </summary> /// <param name="role"></param> public void DeleteRole(MvcRole role) { UnitOfWork.Repository <ApplicationRole>().Delete(role.Id); UnitOfWork.Save(); }