public async Task <(bool Succeeded, string[] Errors)> CreateRoleAsync(ApplicationRole role, IEnumerable <string> claims) { if (claims == null) { claims = new string[] { } } ; var invalidClaims = claims.Where(c => ApplicationPermissions.GetPermissionByValue(c) == null).ToArray(); if (invalidClaims.Any()) { return(false, new[] { "The following claim types are invalid: " + string.Join(", ", invalidClaims) }); } var result = await _roleManager.CreateAsync(role); if (!result.Succeeded) { return(false, result.Errors.Select(e => e.Description).ToArray()); } role = await _roleManager.FindByNameAsync(role.Name); foreach (var claim in claims.Distinct()) { result = await _roleManager.AddClaimAsync(role, new Claim(ClaimConstants.Permission, ApplicationPermissions.GetPermissionByValue(claim))); if (!result.Succeeded) { await DeleteRoleAsync(role); return(false, result.Errors.Select(e => e.Description).ToArray()); } } return(true, new string[] { }); }
public async Task <(bool Succeeded, string[] Errors)> UpdateRoleAsync(ApplicationRole role, IEnumerable <string> claims) { if (claims != null) { var invalidClaims = claims.Where(c => ApplicationPermissions.GetPermissionByValue(c) == null).ToArray(); if (invalidClaims.Any()) { return(false, new[] { "The following claim types are invalid: " + string.Join(", ", invalidClaims) }); } } var result = await _roleManager.UpdateAsync(role); if (!result.Succeeded) { return(false, result.Errors.Select(e => e.Description).ToArray()); } if (claims != null) { var roleClaims = (await _roleManager.GetClaimsAsync(role)).Where(c => c.Type == ClaimConstants.Permission); var roleClaimValues = roleClaims.Select(c => c.Value).ToArray(); var claimsToRemove = roleClaimValues.Except(claims).ToArray(); var claimsToAdd = claims.Except(roleClaimValues).Distinct().ToArray(); if (claimsToRemove.Any()) { foreach (var claim in claimsToRemove) { result = await _roleManager.RemoveClaimAsync(role, roleClaims.Where(c => c.Value == claim).FirstOrDefault()); if (!result.Succeeded) { return(false, result.Errors.Select(e => e.Description).ToArray()); } } } if (claimsToAdd.Any()) { foreach (var claim in claimsToAdd) { result = await _roleManager.AddClaimAsync(role, new Claim(ClaimConstants.Permission, ApplicationPermissions.GetPermissionByValue(claim))); if (!result.Succeeded) { return(false, result.Errors.Select(e => e.Description).ToArray()); } } } } return(true, new string[] { }); }
public AutoMapperProfile() { CreateMap <ApplicationUser, UserViewModel>() .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <UserViewModel, ApplicationUser>() .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <ApplicationUser, UserEditViewModel>() .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <UserEditViewModel, ApplicationUser>() .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <ApplicationUser, UserPatchViewModel>() .ReverseMap(); CreateMap <ApplicationRole, RoleViewModel>() .ForMember(d => d.Permissions, map => map.MapFrom(s => s.Claims)) .ForMember(d => d.UsersCount, map => map.ResolveUsing(s => s.Users?.Count ?? 0)) .ReverseMap() .ForMember(d => d.Claims, map => map.Ignore()); CreateMap <IdentityRoleClaim <string>, ClaimViewModel>() .ForMember(d => d.Type, map => map.MapFrom(s => s.ClaimType)) .ForMember(d => d.Value, map => map.MapFrom(s => s.ClaimValue)) .ReverseMap(); CreateMap <ApplicationPermission, PermissionViewModel>() .ReverseMap(); CreateMap <IdentityRoleClaim <string>, PermissionViewModel>() .ConvertUsing(s => Mapper.Map <PermissionViewModel>(ApplicationPermissions.GetPermissionByValue(s.ClaimValue))); CreateMap <Counterparty, CounterpartyDto>() .ReverseMap(); CreateMap <Product, ProductListDto>() .ReverseMap(); CreateMap <Product, ProductDetailsDto>() .ReverseMap(); CreateMap <Product, ProductEditDto>() .ReverseMap(); CreateMap <DAL.Models.ProductCategory, ProductCategoryDto>() .ReverseMap(); CreateMap <DAL.Models.ProductCategory, CreateProductCategoryDto>() .ReverseMap(); CreateMap <DAL.Models.ProductCategory, EditProductCategoryDto>() .ReverseMap(); CreateMap <Order, OrderListDto>() .ReverseMap(); //CreateMap<OrderEditDTO, Order>() // .ForMember(f => f.OrderLines, opt => opt.Ignore()); CreateMap <Order, OrderEditDto>() .ReverseMap(); CreateMap <OrderLine, OrderLineDTO>() .ReverseMap(); CreateMap <Shipment, ShipmentDto>() .ForMember(f => f.OrderLines, map => map.MapFrom(s => s.Order.OrderLines)) .ReverseMap(); CreateMap <Storage, StorageDto>() .ReverseMap(); CreateMap <ActivityLog, ActivityLogDto>() .ReverseMap(); }
public async Task <ApiResponse> GetRolesAsync(int pageSize = 0, int pageNumber = 0) { var roleQuery = _roleManager.Roles.AsQueryable().OrderBy(x => x.Id); var count = roleQuery.Count(); var listResponse = (pageSize > 0 ? roleQuery.Skip(pageNumber * pageSize).Take(pageSize) : roleQuery).ToList(); var roleDtoList = new List <RoleDto>(); foreach (var role in listResponse) { var claims = await _roleManager.GetClaimsAsync(role); var permissions = claims.Where(x => x.Type == ClaimConstants.Permission).Select(x => _applicationPermissions.GetPermissionByValue(x.Value).Name).ToList(); roleDtoList.Add(new RoleDto { Name = role.Name, Permissions = permissions }); } return(new ApiResponse(Status200OK, L["{0} roles fetched", count], roleDtoList)); }
public async Task <ApiResponse> CreateRoleAsync([FromBody] RoleDto newRole) { try { // first make sure the role doesn't already exist if (_roleManager.Roles.Any(r => r.Name == newRole.Name)) { return(new ApiResponse(400, "role already exists")); } // Create the role var result = await _roleManager.CreateAsync(new IdentityRole <Guid>(newRole.Name)); if (!result.Succeeded) { string errorMessage = result.Errors.Select(x => x.Description).Aggregate((i, j) => i + " - " + j); return(new ApiResponse(500, errorMessage)); } // Re-create the permissions IdentityRole <Guid> role = await _roleManager.FindByNameAsync(newRole.Name); foreach (string claim in newRole.Permissions) { var resultAddClaim = await _roleManager.AddClaimAsync(role, new Claim(ClaimConstants.Permission, ApplicationPermissions.GetPermissionByValue(claim))); if (!resultAddClaim.Succeeded) { await _roleManager.DeleteAsync(role); } } } catch (Exception ex) { return(new ApiResponse(500, ex.Message)); } return(new ApiResponse(200)); }
public async Task <ApiResponse> UpdateRoleAsync([FromBody] RoleDto newRole) { try { // first make sure the role already exist if (!_roleManager.Roles.Any(r => r.Name == newRole.Name)) { return(new ApiResponse(400, "This role doesn't exists")); } // Create the permissions IdentityRole <Guid> identityRole = await _roleManager.FindByNameAsync(newRole.Name); var claims = await _roleManager.GetClaimsAsync(identityRole); var permissions = claims.Where(x => x.Type == ClaimConstants.Permission).Select(x => x.Value).ToList(); foreach (var permission in permissions) { await _roleManager.RemoveClaimAsync(identityRole, new Claim(ClaimConstants.Permission, permission)); } foreach (string claim in newRole.Permissions) { var result = await _roleManager.AddClaimAsync(identityRole, new Claim(ClaimConstants.Permission, ApplicationPermissions.GetPermissionByValue(claim))); if (!result.Succeeded) { await _roleManager.DeleteAsync(identityRole); } } } catch (Exception ex) { return(new ApiResponse(500, ex.Message)); } return(new ApiResponse(200)); }
public async Task <Tuple <bool, string[]> > CreateRoleAsync <TRole>(TRole role, IEnumerable <string> claims) { var entityRole = this.Mapper.Map <Role>(role); if (claims == null) { claims = new string[] { }; } string[] invalidClaims = claims.Where(c => ApplicationPermissions.GetPermissionByValue(c) == null).ToArray(); if (invalidClaims.Any()) { return(Tuple.Create(false, new[] { "The following claim types are invalid: " + string.Join(", ", invalidClaims) })); } var result = await this.roleManager.CreateAsync(entityRole); if (!result.Succeeded) { return(Tuple.Create(false, result.Errors.Select(e => e.Description).ToArray())); } entityRole = await this.roleManager.FindByNameAsync(entityRole.Name); foreach (string claim in claims.Distinct()) { result = await this.roleManager.AddClaimAsync(entityRole, new Claim(CustomClaimTypes.Permission, ApplicationPermissions.GetPermissionByValue(claim))); if (!result.Succeeded) { await this.DeleteRoleAsync(role); return(Tuple.Create(false, result.Errors.Select(e => e.Description).ToArray())); } } return(Tuple.Create(true, new string[] { })); }
public async Task <ApiResponse> GetRoles([FromQuery] int pageSize = 10, [FromQuery] int pageNumber = 0) { var roleDtoList = new List <RoleDto>(); List <IdentityRole <Guid> > listResponse; // get paginated list of roles try { var roleList = _roleManager.Roles.AsQueryable(); listResponse = roleList.OrderBy(x => x.Id).Skip(pageNumber * pageSize).Take(pageSize).ToList(); } catch (Exception ex) { throw new Exception(null, ex); } try { foreach (var role in listResponse) { var claims = await _roleManager.GetClaimsAsync(role); var permissions = claims.Where(x => x.Type == "permission").Select(x => ApplicationPermissions.GetPermissionByValue(x.Value).Name).ToList(); roleDtoList.Add(new RoleDto { Name = role.Name, Permissions = permissions });; } } catch (Exception ex) { throw new Exception(null, ex); } return(new ApiResponse(Status200OK, "Roles list fetched", roleDtoList)); }
public AutoMapperProfile() { CreateMap <ApplicationUser, UserViewModel> () .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <UserViewModel, ApplicationUser> () .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <ApplicationUser, UserEditViewModel> () .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <UserEditViewModel, ApplicationUser> () .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <ApplicationUser, UserPatchViewModel> () .ReverseMap(); CreateMap <ApplicationRole, RoleViewModel> () .ForMember(d => d.Permissions, map => map.MapFrom(s => s.Claims)) .ForMember(d => d.UsersCount, map => map.MapFrom((s, d) => s.Users?.Count ?? 0)) //.ForMember (d => d.UsersCount, map => map.ResolveUsing (s => s.Users?.Count ?? 0)) .ReverseMap(); CreateMap <RoleViewModel, ApplicationRole> (); CreateMap <IdentityRoleClaim <string>, ClaimViewModel> () .ForMember(d => d.Type, map => map.MapFrom(s => s.ClaimType)) .ForMember(d => d.Value, map => map.MapFrom(s => s.ClaimValue)) .ReverseMap(); CreateMap <ApplicationPermission, PermissionViewModel> () .ReverseMap(); CreateMap <IdentityRoleClaim <string>, PermissionViewModel> () .ConvertUsing(s => Mapper.Map <PermissionViewModel> (ApplicationPermissions.GetPermissionByValue(s.ClaimValue))); CreateMap <Customer, CustomerViewModel> () .ReverseMap(); CreateMap <Product, ProductViewModel> () .ReverseMap(); CreateMap <Order, OrderViewModel> () .ReverseMap(); CreateMap <Pays, PaysViewModel> () .ForMember(d => d.Villes, map => map.Ignore()) .ReverseMap(); CreateMap <Villes, VillesViewModel> () .ReverseMap(); CreateMap <Devises, DevisesViewModel> () .ReverseMap(); CreateMap <Secteurs, SecteursViewModel> () .ReverseMap(); CreateMap <Fournisseurs, EditFournisseurViewModel> () .ReverseMap(); CreateMap <Fournisseurs, EditFournisseursViewModel> () .ForMember(f => f.Contract, map => map.Ignore()); CreateMap <Fournisseurs, FournisseursViewModel> () .ForMember(f => f.Secteurs, map => map.Ignore()) .ReverseMap(); CreateMap <Entreprise, EntrepriseViewModel> () .ReverseMap(); CreateMap <Entreprise, EditEntrepriseViewModel>() .ReverseMap(); CreateMap <Departements, DepartementsViewModel>() .ReverseMap(); CreateMap <Agences, AgencesViewModel>() .ReverseMap(); CreateMap <Services, ServicesViewModel>() .ReverseMap(); CreateMap <ProductCategory, CategoriesViewModel>() .ReverseMap(); CreateMap <Product, ProductViewModel>() .ReverseMap(); CreateMap <EntrepriseUserInfos, EntrepriseUserInfosViewModel>() .ReverseMap(); CreateMap <ApprobationLevel, ApprobationLevelViewModel>() .ReverseMap(); CreateMap <Demandes, DemandesViewModel>() .ReverseMap(); CreateMap <ApprobationWorkflow, ApprobationWorkflowViewModel>() .ReverseMap(); CreateMap <Process, ProcessViewModel>() .ReverseMap(); CreateMap <Group, GroupViewModel>() .ReverseMap(); CreateMap <Etat, EtatViewModel>() .ReverseMap(); CreateMap <Actions, ActionsViewModel>() .ReverseMap(); CreateMap <Activite, ActiviteViewModel>() .ReverseMap(); CreateMap <Transition, TransitionActions>() .ReverseMap(); CreateMap <ActiviteTarget, ActiviteTargetViewModel>() .ReverseMap(); CreateMap <ActionTarget, ActionTargetViewModel>() .ReverseMap(); CreateMap <ActionsHistories, ActionsHistoriesViewModel>() .ReverseMap(); CreateMap <TransitionActions, TransitionActionsViewModel>() .ReverseMap(); CreateMap <TypeComptes, TypeComptesViewModel>() .ReverseMap(); CreateMap <ComptesInternes, ComptesInternesViewModel>() .ReverseMap(); CreateMap <Factures, FacturesViewModel>() .ReverseMap(); CreateMap <Reglements, ReglementsViewModel>() .ReverseMap(); CreateMap <BonDeCommande, BonDeCommandeViewModel>() .ReverseMap(); CreateMap <BonLivraison, BonLivraisonViewModel>() .ReverseMap(); }
public AutoMapperProfile() { CreateMap <ApplicationUser, UserViewModel>() .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <UserViewModel, ApplicationUser>() .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <TraisiUser, UserViewModel>() .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <UserViewModel, TraisiUser>() .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <UserViewModel, SurveyUser>() .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <ApplicationUser, UserEditViewModel>() .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <UserEditViewModel, ApplicationUser>() .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <ApplicationUser, UserPatchViewModel>() .ReverseMap(); CreateMap <ApplicationRole, RoleViewModel>() .ForMember(d => d.Permissions, map => map.MapFrom(s => s.Claims)) .ForMember(d => d.UsersCount, map => map.ResolveUsing(s => s.Users?.Count ?? 0)) .ReverseMap(); CreateMap <RoleViewModel, ApplicationRole>(); CreateMap <IdentityRoleClaim <string>, ClaimViewModel>() .ForMember(d => d.Type, map => map.MapFrom(s => s.ClaimType)) .ForMember(d => d.Value, map => map.MapFrom(s => s.ClaimValue)) .ReverseMap(); CreateMap <ApplicationPermission, PermissionViewModel>() .ReverseMap(); CreateMap <IdentityRoleClaim <string>, PermissionViewModel>() .ConvertUsing(s => Mapper.Map <PermissionViewModel>(ApplicationPermissions.GetPermissionByValue(s.ClaimValue))); CreateMap <Survey, SurveyViewModel>() .ReverseMap(); CreateMap <GroupMember, GroupMemberViewModel>(); CreateMap <GroupMemberViewModel, GroupMember>() .ForMember(d => d.User, map => map.Ignore()) .ForMember(d => d.UserGroup, map => map.Ignore()); CreateMap <UserGroup, UserGroupViewModel>() .ReverseMap(); CreateMap <SurveyPermission, SurveyPermissionViewModel>() .ReverseMap(); CreateMap <ApiKeys, ApiKeysViewModel>() .ForMember(a => a.GroupId, map => map.MapFrom(s => s.Group.Id)) .ReverseMap(); CreateMap <EmailTemplate, EmailTemplateViewModel>() .ForMember(a => a.GroupName, map => map.MapFrom(s => s.Group.Name)) .ReverseMap(); CreateMap <CodeGeneration, CodeGenerationViewModel>() .ReverseMap(); CreateMap <GroupCodeViewModel, Groupcode>() .ForMember(gc => gc.Survey, map => map.Ignore()); CreateMap <Groupcode, GroupCodeViewModel>() .ForMember(gc => gc.SurveyId, map => map.MapFrom(s => s.Survey.Id)); CreateMap <ShortcodeViewModel, Shortcode>() .ForMember(sc => sc.Groupcode, map => map.Ignore()) .ForMember(sc => sc.Survey, map => map.Ignore()); //.ForMember (sc => sc.Respondent, map => map.Ignore()); CreateMap <Shortcode, ShortcodeViewModel>() .ForMember(sc => sc.SurveyId, map => map.MapFrom(s => s.Survey.Id)); //.ForMember(sc => sc.Respondent, map => map.MapFrom(r => r.Respondent.Id)); CreateMap <QuestionPartView, QuestionPartViewViewModel>() .AfterMap((s, svm, opt) => { svm.Label = s.Labels.FirstOrDefault(l => l.Language == (string)opt.Items["Language"]).Value; }); CreateMap <SBQuestionPartViewViewModel, QuestionPartView>() .ForMember(m => m.SurveyView, map => map.Ignore()) .ForMember(m => m.RepeatSource, map => map.Ignore()); CreateMap <SBQuestionPartViewModel, QuestionPart>() .ForMember(m => m.QuestionConfigurations, map => map.Ignore()) .ForMember(m => m.QuestionOptions, map => map.Ignore()) .ReverseMap(); CreateMap <QuestionPartView, SBQuestionPartViewViewModel>() .ForMember(m => m.ParentViewId, map => map.MapFrom(s => s.ParentView.Id)) .ForMember(m => m.repeatSourceQuestionName, map => map.ResolveUsing(s => { if (s.RepeatSource != null) { return($"question~{s.RepeatSource.QuestionType}~{s.RepeatSource.Id}"); } else { return(null); } })) .AfterMap((s, svm, opt) => { svm.Label = Mapper.Map <QuestionPartViewLabelViewModel>( s.Labels.FirstOrDefault(l => l.Language == (string)opt.Items["Language"])); svm.QuestionPartViewChildren = svm.QuestionPartViewChildren?.OrderBy(c => c.Order).ToList(); }); CreateMap <QuestionConfiguration, QuestionConfigurationValueViewModel>() .ReverseMap(); CreateMap <QuestionOptionLabel, QuestionOptionLabelViewModel>() .ReverseMap(); CreateMap <QuestionOption, QuestionOptionValueViewModel>() .AfterMap((s, svm, opt) => { svm.OptionLabel = Mapper.Map <QuestionOptionLabelViewModel>(s.QuestionOptionLabels.First(l => l.Language == (string)opt.Items["Language"])); }); CreateMap <QuestionConditional, QuestionConditionalViewModel>() .ReverseMap().ForMember(c => c.SourceQuestion, map => map.Ignore()).ForMember(c => c.TargetQuestion, map => map.Ignore()); CreateMap <QuestionOptionConditional, QuestionOptionConditionalViewModel>().ReverseMap(); CreateMap <SBSurveyViewViewModel, SurveyView>() .ForMember(m => m.TermsAndConditionsLabels, map => map.Ignore()) .ForMember(m => m.ThankYouPageLabels, map => map.Ignore()) .ForMember(m => m.WelcomePageLabels, map => map.Ignore()); CreateMap <QuestionPartView, SBPageStructureViewModel>() .AfterMap((s, svm, opt) => { var language = (string)opt.Items["Language"]; if (s.QuestionPart == null) { svm.Label = s.Labels.FirstOrDefault(l => l.Language == language).Value; svm.Type = "part"; svm.Children = s.QuestionPartViewChildren.OrderBy(q => q.Order).Select(q => q.ToLocalizedModel <SBPageStructureViewModel>(language)).ToList(); } else { svm.Id = s.QuestionPart.Id.ToString(); svm.Label = s.QuestionPart.Name; svm.Type = "question~" + s.QuestionPart.QuestionType; svm.Children = s.QuestionPart.QuestionOptions.Count <= 200 ? s.QuestionPart.QuestionOptions.OrderBy(o => o.Name).ThenBy(o => o.Order).Select(q => q.ToLocalizedModel <SBPageStructureViewModel>(language)).ToList() : null; } }); CreateMap <QuestionOption, SBPageStructureViewModel>() .ForMember(o => o.Children, map => map.Ignore()) .AfterMap((s, svm, opt) => { svm.Id = s.Id.ToString(); svm.Type = "option~" + s.Name; svm.Label = s.QuestionOptionLabels.FirstOrDefault(l => l.Language == (string)opt.Items["Language"]).Value; }); CreateMap <SurveyView, SBSurveyViewViewModel>() .ForMember(vm => vm.SurveyId, map => map.MapFrom(m => m.Survey.Id)) .ForMember(vm => vm.Pages, map => map.MapFrom(m => m.QuestionPartViews)) .AfterMap((s, svm, opt) => { svm.SurveyCompletionPage = Mapper.Map <ThankYouPageLabelViewModel>( s.ThankYouPageLabels.FirstOrDefault(l => l.Language == (string)opt.Items["Language"])); svm.TermsAndConditionsPage = Mapper.Map <TermsAndConditionsPageLabelViewModel>( s.TermsAndConditionsLabels.FirstOrDefault(l => l.Language == (string)opt.Items["Language"])); svm.WelcomePage = Mapper.Map <WelcomePageLabelViewModel>( s.WelcomePageLabels.FirstOrDefault(l => l.Language == (string)opt.Items["Language"])); svm.ScreeningQuestions = Mapper.Map <ScreeningQuestionsLabelViewModel>( s.ScreeningQuestionLabels.FirstOrDefault(l => l.Language == (string)opt.Items["Language"])); }); CreateMap <SBOrderViewModel, QuestionPartView>() .ForMember(o => o.Labels, map => map.Ignore()) .ForMember(o => o.ParentView, map => map.Ignore()) .ForMember(o => o.QuestionPart, map => map.Ignore()) .ForMember(o => o.SurveyView, map => map.Ignore()) .ForMember(o => o.QuestionPartViewChildren, map => map.Ignore()); CreateMap <SBOrderViewModel, QuestionOption>() .ForMember(o => o.Name, map => map.Ignore()) .ForMember(o => o.QuestionOptionLabels, map => map.Ignore()); CreateMap <QuestionPartViewLabelViewModel, QuestionPartViewLabel>() .ForMember(w => w.QuestionPartView, map => map.Ignore()) .ReverseMap(); CreateMap <WelcomePageLabelViewModel, WelcomePageLabel>() .ForMember(w => w.SurveyView, map => map.Ignore()) .ReverseMap(); CreateMap <ThankYouPageLabelViewModel, ThankYouPageLabel>() .ForMember(w => w.SurveyView, map => map.Ignore()) .ReverseMap(); CreateMap <TermsAndConditionsPageLabelViewModel, TermsAndConditionsPageLabel>() .ForMember(w => w.SurveyView, map => map.Ignore()) .ReverseMap(); CreateMap <ScreeningQuestionsLabelViewModel, ScreeningQuestionsPageLabel>() .ForMember(w => w.SurveyView, map => map.Ignore()) .ReverseMap(); CreateMap <LabelViewModel, Label>() .ReverseMap(); CreateMap <SiteSurveyTemplate, SiteSurveyTemplateViewModel>() .ReverseMap(); CreateMap <QuestionTypeDefinition, SBQuestionTypeDefinitionViewModel>() .ForMember(q => q.ResponseType, map => map.ResolveUsing(s => s.ResponseType.ToString())) .ReverseMap(); CreateMap <QuestionConfigurationDefinition, QuestionConfigurationDefinitionViewModel>() .ForMember(q => q.ResourceData, map => map.ResolveUsing(s => { return((s.SharedResource == null) ? ((s.ResourceData == null) ? (null) : (System.Text.Encoding.UTF8.GetString(s.ResourceData))) : System.Text.Encoding.UTF8.GetString(QuestionTypeManager.SharedQuestionResources[s.SharedResource].Data)); })) .ReverseMap(); CreateMap <QuestionOptionDefinition, QuestionOptionDefinitionViewModel>() .ReverseMap(); CreateSurveyViewerAutoMapperProfiles(); CreateSurveyResponderAutoMapperProfiles(); }
/// <summary> /// Add permissions to role /// </summary> /// <param name="role"></param> /// <param name="permissions"></param> /// <returns></returns> /// <exception cref="Exception"></exception> public async Task AddPermissionsToRole(ApplicationRole role, List <ApplicationPermission> permissions) { var claims = permissions.Select(x => new Claim(CustomClaimTypes.Permission, ApplicationPermissions.GetPermissionByValue(x.Value))).ToList(); foreach (var claim in claims) { var results = await _roleManager.AddClaimAsync(role, claim); if (!results.Succeeded) { throw new Exception($"Unable to add claim {claim.Value}"); } } }
/// <summary> /// Get permissions for role /// </summary> /// <param name="role"></param> /// <returns></returns> public async Task <List <ApplicationPermission> > GetPermissionsForRole(ApplicationRole role) { var claims = await _roleManager.GetClaimsAsync(role); return(claims.Select(x => ApplicationPermissions.GetPermissionByValue(x.Value)).ToList()); }
public async Task <ApiResponse> GetRoleAsync(string roleName) { RoleDto roleDto; IdentityRole <Guid> identityRole; // get paginated list of users try { identityRole = await _roleManager.FindByNameAsync(roleName); } catch (Exception ex) { throw new Exception(null, ex); } try { var claims = await _roleManager.GetClaimsAsync(identityRole); var permissions = claims.Where(x => x.Type == "permission").Select(x => ApplicationPermissions.GetPermissionByValue(x.Value).Name).ToList(); roleDto = new RoleDto { Name = roleName, Permissions = permissions }; } catch (Exception ex) { throw new Exception(null, ex); } return(new ApiResponse(Status200OK, "Role fetched", roleDto)); }
private async Task EnsureRoleAsync(string roleName, string description, string[] claims) { if ((await _roleManager.FindByNameAsync(roleName)) == null) { if (claims == null) { claims = new string[] { } } ; string[] invalidClaims = claims.Where(c => ApplicationPermissions.GetPermissionByValue(c) == null).ToArray(); if (invalidClaims.Any()) { throw new Exception("The following claim types are invalid: " + string.Join(", ", invalidClaims)); } IdentityRole <Guid> applicationRole = new IdentityRole <Guid>(roleName); var result = await _roleManager.CreateAsync(applicationRole); IdentityRole <Guid> role = await _roleManager.FindByNameAsync(applicationRole.Name); foreach (string claim in claims.Distinct()) { result = await _roleManager.AddClaimAsync(role, new Claim(ClaimConstants.Permission, ApplicationPermissions.GetPermissionByValue(claim))); if (!result.Succeeded) { await _roleManager.DeleteAsync(role); } } } }
public AutoMapperProfile() { CreateMap <ApplicationUser, UserViewModel>() .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <UserViewModel, ApplicationUser>() .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <ApplicationUser, UserEditViewModel>() .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <UserEditViewModel, ApplicationUser>() .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <ApplicationUser, UserPatchViewModel>() .ReverseMap(); CreateMap <ApplicationRole, RoleViewModel>() .ForMember(d => d.Permissions, map => map.MapFrom(s => s.Claims)) .ForMember(d => d.UsersCount, map => map.MapFrom(s => s.Users != null ? s.Users.Count : 0)) .ReverseMap(); CreateMap <RoleViewModel, ApplicationRole>(); CreateMap <IdentityRoleClaim <string>, ClaimViewModel>() .ForMember(d => d.Type, map => map.MapFrom(s => s.ClaimType)) .ForMember(d => d.Value, map => map.MapFrom(s => s.ClaimValue)) .ReverseMap(); CreateMap <ApplicationPermission, PermissionViewModel>() .ReverseMap(); CreateMap <IdentityRoleClaim <string>, PermissionViewModel>() .ConvertUsing(s => Mapper.Map <PermissionViewModel>(ApplicationPermissions.GetPermissionByValue(s.ClaimValue))); CreateMap <Attendance, AttendanceViewModel>() .ReverseMap(); CreateMap <AttendanceViewModel, Attendance>(); CreateMap <Attendance, AttendanceCreateViewModel>() .ReverseMap(); CreateMap <AttendanceCreateViewModel, Attendance>() .ReverseMap(); CreateMap <PublicHoliday, PublicHolidayViewModel>() .ReverseMap(); CreateMap <PublicHolidayViewModel, PublicHoliday>() .ReverseMap(); CreateMap <PublicHoliday, PublicHolidayWithEventViewModel>() .ReverseMap(); CreateMap <PublicHolidayWithEventViewModel, PublicHoliday>() .ReverseMap(); CreateMap <Department, DepartmentViewModel>() .ReverseMap(); CreateMap <DepartmentViewModel, Department>() .ReverseMap(); CreateMap <CompanyBasicInfo, CompanyBasicInfoViewModel>() .ReverseMap(); CreateMap <CompanyBasicInfoViewModel, CompanyBasicInfo>() .ReverseMap(); CreateMap <ApplicationUser, ApplicationUserViewModel>() .ReverseMap(); CreateMap <ApplicationUserViewModel, ApplicationUser>() .ReverseMap(); CreateMap <TMSsite, TMSsiteViewModel>() .ReverseMap(); CreateMap <TMSsiteViewModel, TMSsite>() .ReverseMap(); CreateMap <TMSJobSite, TMSJobSiteViewModel>() .ReverseMap(); CreateMap <TMSJobSiteViewModel, TMSJobSite>() .ReverseMap(); CreateMap <JobSiteViewModel, TMSJobSite>() .ReverseMap(); CreateMap <TMSJobSite, JobSiteViewModel>() .ReverseMap(); CreateMap <JobSiteUpdateModel, TMSJobSite>() .ReverseMap(); CreateMap <TMSJobSite, JobSiteUpdateModel>() .ReverseMap(); CreateMap <TMSResignReason, TMSResignReasonViewModel>() .ReverseMap(); CreateMap <TMSResignReasonViewModel, TMSResignReason>() .ReverseMap(); CreateMap <TMSAttendance, TMSAttendanceViewModel>() .ReverseMap(); CreateMap <TMSAttendanceViewModel, TMSAttendance>() .ReverseMap(); CreateMap <TMSAttendance, TMSAttendanceCreateViewModel>() .ReverseMap(); CreateMap <TMSAttendanceCreateViewModel, TMSAttendance>() .ReverseMap(); CreateMap <TMSPublicHoliday, TMSPublicHolidayViewModel>() .ReverseMap(); CreateMap <TMSPublicHolidayViewModel, TMSPublicHoliday>() .ReverseMap(); CreateMap <TMSPublicHoliday, TMSPublicHolidayCreateViewModel>() .ReverseMap(); CreateMap <TMSPublicHolidayCreateViewModel, TMSPublicHoliday>() .ReverseMap(); CreateMap <TMSRace, TMSRaceViewModel>() .ReverseMap(); CreateMap <TMSRaceViewModel, TMSRace>() .ReverseMap(); CreateMap <TMSRace, TMSRaceCreateViewModel>() .ReverseMap(); CreateMap <TMSRaceCreateViewModel, TMSRace>() .ReverseMap(); CreateMap <TMSEmployee, TMSEmployeeViewModel>() .ReverseMap(); CreateMap <TMSEmployeeViewModel, TMSEmployee>() .ReverseMap(); CreateMap <TMSEmployee, TMSEmployeeCreateViewModel>() .ReverseMap(); CreateMap <TMSEmployeeCreateViewModel, TMSEmployee>() .ReverseMap(); CreateMap <TMSOtCode, TMSOtCodeViewModel>() .ReverseMap(); CreateMap <TMSOtCodeViewModel, TMSOtCode>() .ReverseMap(); CreateMap <TMSOtCode, TMSOtCodeGetIdViewModel>() .ReverseMap(); CreateMap <TMSOtCodeGetIdViewModel, TMSOtCode>() .ReverseMap(); CreateMap <TMSOtCode, TMSOtCodeCreateViewModel>() .ReverseMap(); CreateMap <TMSOtCodeCreateViewModel, TMSOtCode>() .ReverseMap(); CreateMap <TMSAllowance, TMSAllowanceViewModel>() .ReverseMap(); CreateMap <TMSAllowanceViewModel, TMSAllowance>() .ReverseMap(); CreateMap <TMSOtSetting, TMSOtSettingCreateViewModel>() .ReverseMap(); CreateMap <TMSOtSettingCreateViewModel, TMSOtSetting>() .ReverseMap(); CreateMap <TMSOtSetting, TMSOtSettingViewModel>() .ReverseMap(); CreateMap <TMSOtSettingViewModel, TMSOtSetting>() .ReverseMap(); CreateMap <TMSOtSetting, TMSOtSettingGetIdViewModel>() .ReverseMap(); CreateMap <TMSOtSettingGetIdViewModel, TMSOtSetting>() .ReverseMap(); CreateMap <TMSAllowanceJobsite, TMSAllowanceJobsiteViewModel>() .ReverseMap(); CreateMap <TMSAllowanceJobsiteViewModel, TMSAllowanceJobsite>() .ReverseMap(); CreateMap <TMSAllowanceJobsite, TMSAllowanceJobsiteCreateViewModel>() .ReverseMap(); CreateMap <TMSAllowanceJobsiteCreateViewModel, TMSAllowanceJobsite>() .ReverseMap(); CreateMap <TMSShift, TMSShiftViewModel>() .ReverseMap(); CreateMap <TMSShift, TMSShiftViewModelV2>() .ReverseMap(); CreateMap <TMSShiftViewModel, TMSShift>() .ReverseMap(); CreateMap <TMSZoneLocation, TMSZoneLocationViewModel>() .ReverseMap(); CreateMap <TMSZoneLocationViewModel, TMSZoneLocation>() .ReverseMap(); CreateMap <TMSZoneLocation, TMSZoneLocationCreateViewModel>() .ReverseMap(); CreateMap <TMSZoneLocationCreateViewModel, TMSZoneLocation>() .ReverseMap(); CreateMap <TMSOtMaxTimeCreateViewModel, TMSOtMaxTime>() .ReverseMap(); CreateMap <TMSOtMaxTimeViewModel, TMSOtMaxTime>() .ReverseMap(); CreateMap <TMSOtMaxTime, TMSOtMaxTimeViewModel>() .ReverseMap(); CreateMap <TMSLevel, TMSLevelViewModel>() .ReverseMap(); CreateMap <TMSLevelViewModel, TMSLevel>() .ReverseMap(); CreateMap <TMSLevel, TMSLevelCreateViewModel>() .ReverseMap(); CreateMap <TMSLevelCreateViewModel, TMSLevel>() .ReverseMap(); CreateMap <TMSArea, TMSAreaViewModel>() .ReverseMap(); CreateMap <TMSAreaViewModel, TMSArea>() .ReverseMap(); CreateMap <TMSArea, TMSAreaCreateViewModel>() .ReverseMap(); CreateMap <TMSAreaCreateViewModel, TMSArea>() .ReverseMap(); CreateMap <TMSLocation, TMSLocationViewModel>() .ReverseMap(); CreateMap <TMSLocationViewModel, TMSLocation>() .ReverseMap(); CreateMap <TMSLocation, TMSLocationCreateViewModel>() .ReverseMap(); CreateMap <TMSLocationCreateViewModel, TMSLocation>() .ReverseMap(); CreateMap <TMSLocation, TMSLocationGetIdViewModel>() .ReverseMap(); CreateMap <TMSZone, TMSZoneViewModel>() .ReverseMap(); CreateMap <TMSZoneViewModel, TMSZone>() .ReverseMap(); CreateMap <TMSZone, TMSZoneCreateViewModel>() .ReverseMap(); CreateMap <TMSZoneCreateViewModel, TMSZone>() .ReverseMap(); CreateMap <TMSZone, TMSZoneListViewModel>() .ReverseMap(); CreateMap <TMSZoneListViewModel, TMSZone>() .ReverseMap(); CreateMap <TMSShiftJobSite, TMSShiftJobSiteViewModel>() .ReverseMap(); CreateMap <TMSShiftJobSiteViewModel, TMSShiftJobSite>() .ReverseMap(); CreateMap <TMSShiftJobSiteCreateViewModel, TMSShiftJobSite>() .ReverseMap(); CreateMap <TMSEmployeeLogTime, TMSEmployeeLogTimeViewModel>() .ReverseMap(); CreateMap <TMSEmployeeLogTimeViewModel, TMSEmployeeLogTime>() .ReverseMap(); CreateMap <TMSEventPromotion, TMSEventPromotionViewModel>() .ReverseMap(); CreateMap <TMSEventPromotionViewModel, TMSEventPromotion>() .ReverseMap(); CreateMap <TMSEventPromotion, TMSEventPromotionCreateViewModel>() .ReverseMap(); CreateMap <TMSEventPromotionCreateViewModel, TMSEventPromotion>() .ReverseMap(); CreateMap <TMSEventTerminationResign, TMSEventTerminationResignViewModel>() .ReverseMap(); CreateMap <TMSEventTerminationResignViewModel, TMSEventTerminationResign>() .ReverseMap(); CreateMap <TMSEventTerminationResign, TMSEventCreateTRViewModel>() .ReverseMap(); CreateMap <TMSEventCreateTRViewModel, TMSEventTerminationResign>() .ReverseMap(); CreateMap <TMSEventTransfer, TMSEventTransferViewModel>() .ReverseMap(); CreateMap <TMSEventTransferViewModel, TMSEventTransfer>() .ReverseMap(); CreateMap <TMSEventTransfer, TMSEventTransferCreateViewModel>() .ReverseMap(); CreateMap <TMSEventTransferCreateViewModel, TMSEventTransfer>() .ReverseMap(); CreateMap <TMSEventContract, TMSEventContractViewModel>() .ReverseMap(); CreateMap <TMSEventContractViewModel, TMSEventContract>() .ReverseMap(); CreateMap <TMSEventContract, TMSEventContractCreateViewModel>() .ReverseMap(); CreateMap <TMSEventContractCreateViewModel, TMSEventContract>() .ReverseMap(); CreateMap <TMSEventRejoin, TMSEventRejoinViewModel>() .ReverseMap(); CreateMap <TMSEventRejoinViewModel, TMSEventRejoin>() .ReverseMap(); CreateMap <TMSEventRejoin, TMSEventRejoinCreateViewModel>() .ReverseMap(); CreateMap <TMSEventRejoinCreateViewModel, TMSEventRejoin>() .ReverseMap(); CreateMap <TMSRosterViewModel, TMSRoster>() .ReverseMap(); }
public async Task <IdentityResult> UpdateRoleAsync(Role role, IEnumerable <string> claims) { claims = claims.ToArray(); if (claims.Any()) { string[] invalidClaims = claims.Where(c => ApplicationPermissions.GetPermissionByValue(c) == null).ToArray(); if (invalidClaims.Any()) { return(IdentityResult.Failed(new IdentityError { Code = HttpStatusCode.NotFound.ToString(), Description = "The following claim types are invalid: " + string.Join(", ", invalidClaims) })); } } var result = await _roleManager.UpdateAsync(role); if (!result.Succeeded) { return(result); } var roleClaims = (await _roleManager.GetClaimsAsync(role)) .ToArray(); if (claims.Any()) { var roleClaimValues = roleClaims.Select(c => c.Value).ToArray(); var claimsToRemove = roleClaimValues.Except(claims).ToArray(); var claimsToAdd = claims .Except(roleClaimValues) .Distinct() .ToArray(); if (claimsToRemove.Any()) { foreach (string claim in claimsToRemove) { result = await _roleManager.RemoveClaimAsync(role, roleClaims.FirstOrDefault(c => c.Value == claim)); if (!result.Succeeded) { return(result); } } } if (claimsToAdd.Any()) { foreach (string claim in claimsToAdd) { result = await _roleManager.AddClaimAsync(role, new Claim(CustomClaimsTypes.Permission, ApplicationPermissions.GetPermissionByValue(claim))); if (!result.Succeeded) { return(result); } } } } else { // Remove all Claims if (roleClaims.Any()) { foreach (var claim in roleClaims) { result = await _roleManager.RemoveClaimAsync(role, claim); if (!result.Succeeded) { return(result); } } } } return(result); }
public AutoMapperProfile() { CreateMap <AppUser, UserViewModel>() .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <UserViewModel, AppUser>() .ForMember(d => d.Roles, map => map.Ignore()) .ForMember(d => d.Id, map => map.Condition(src => src.Id != null)); CreateMap <AppUser, UserEditViewModel>() .ForMember(d => d.Roles, map => map.Ignore()); CreateMap <UserEditViewModel, AppUser>() .ForMember(d => d.Roles, map => map.Ignore()) .ForMember(d => d.Id, map => map.Condition(src => src.Id != null)); CreateMap <AppUser, RegisterViewModel>().ReverseMap() .ForMember(d => d.Id, map => map.Condition(src => src.Id != null)); CreateMap <AppUser, ProfileVM>().ReverseMap() .ForMember(d => d.Id, map => map.Condition(src => src.UserId != null)); CreateMap <Customer, ProfileVM>().ReverseMap() .ForMember(d => d.Id, map => map.Condition(src => src.UserId != null)); CreateMap <AppUser, LoginViewModel>().ReverseMap(); CreateMap <AppUser, LoginVM>().ReverseMap(); //CreateMap<AppUser, RegisterVM>().ReverseMap(); //.ForMember(d => d.Id, map => map.Condition(src => src.Id != null)); CreateMap <AppUser, UserDTO>().ReverseMap(); CreateMap <AppUser, RegisterViewModel>() .ReverseMap() .ForMember(d => d.Id, map => map.Condition(src => src.Id != null)); CreateMap <AppUser, UserPatchViewModel>() .ReverseMap(); CreateMap <AppRole, RoleViewModel>() .ForMember(d => d.Permissions, map => map.MapFrom(s => s.Claims)) .ForMember(d => d.UsersCount, map => map.MapFrom(s => s.Users != null ? s.Users.Count : 0)) .ReverseMap(); CreateMap <RoleViewModel, AppRole>() .ForMember(d => d.Id, map => map.Condition(src => src.Id != null)); CreateMap <IdentityRoleClaim <string>, ClaimViewModel>() .ForMember(d => d.Type, map => map.MapFrom(s => s.ClaimType)) .ForMember(d => d.Value, map => map.MapFrom(s => s.ClaimValue)) .ReverseMap(); CreateMap <ApplicationPermission, PermissionViewModel>() .ReverseMap(); CreateMap <IdentityRoleClaim <string>, PermissionViewModel>() .ConvertUsing(s => (PermissionViewModel)ApplicationPermissions.GetPermissionByValue(s.ClaimValue)); CreateMap <Customer, CustomerViewModel>().ReverseMap(); CreateMap <Customer, Customer>().ReverseMap(); CreateMap <Customer, ClientInfo>().ReverseMap(); CreateMap <Language, Language>().ReverseMap(); CreateMap <Article, ArticleViewModel>().ReverseMap(); CreateMap <Article, CartItem>().ReverseMap(); CreateMap <CartVM, CartItem>().ReverseMap(); CreateMap <Article, Article>().ReverseMap(); CreateMap <Order, OrderViewModel>().ReverseMap(); }