Example #1
0
        /// <summary>
        /// Install permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual void InstallPermissions(IPermissionProvider permissionProvider)
        {
            //install new permissions
            var permissions = permissionProvider.GetPermissions();
            //default user role mappings
            var defaultPermissions = permissionProvider.GetDefaultPermissions().ToList();

            foreach (var permission in permissions)
            {
                var permission1 = GetPermissionRecordBySystemName(permission.SystemName);
                if (permission1 != null)
                {
                    continue;
                }

                //new permission (install it)
                permission1 = new PermissionRecord
                {
                    Name       = permission.Name,
                    SystemName = permission.SystemName,
                    Category   = permission.Category
                };

                foreach (var defaultPermission in defaultPermissions)
                {
                    var claim = _claimRecordRepository.Table.Where(role => role.SystemName.Equals(defaultPermission.CustomerRoleSystemName)).FirstOrDefault();
                    if (claim == null)
                    {
                        //new role (save it)
                        claim = new ClaimRecord
                        {
                            Name       = defaultPermission.CustomerRoleSystemName,
                            Active     = true,
                            SystemName = defaultPermission.CustomerRoleSystemName
                        };
                        _claimRecordRepository.Insert(claim);
                    }

                    var defaultMappingProvided = (from p in defaultPermission.PermissionRecords
                                                  where p.SystemName == permission1.SystemName
                                                  select p).Any();
                    var mappingExists = (from mapping in claim.PermissionRecordClaimRecordMappings
                                         where mapping.PermissionRecord.SystemName == permission1.SystemName
                                         select mapping.PermissionRecord).Any();
                    if (defaultMappingProvided && !mappingExists)
                    {
                        //permission1.UserRoles.Add(claim);
                        permission1.PermissionRecordClaimRecordMappings.Add(new PermissionRecordClaimRecordMapping {
                            ClaimRecord = claim
                        });
                    }
                }

                //save new permission
                InsertPermissionRecord(permission1);

                //save localization
                //_localizationService.SaveLocalizedPermissionName(permission1);
            }
        }
        /// <summary>
        /// Install missing permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual async Task InstallNewPermissions(IPermissionProvider permissionProvider)
        {
            //install new permissions
            var permissions = permissionProvider.GetPermissions();

            foreach (var permission in permissions)
            {
                var permission1 = await GetPermissionRecordBySystemName(permission.SystemName);

                if (permission1 == null)
                {
                    //new permission (install it)
                    permission1 = new PermissionRecord {
                        Name       = permission.Name,
                        SystemName = permission.SystemName,
                        Category   = permission.Category,
                    };

                    //save new permission
                    await InsertPermissionRecord(permission1);

                    //save localization
                    await permission1.SaveLocalizedPermissionName(_localizationService, _languageService);
                }
            }
        }
Example #3
0
        /// <summary>
        /// Install permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual void InstallPermissions(IPermissionProvider permissionProvider)
        {
            //install new permissions
            var permissions = permissionProvider.GetPermissions();
            //default customer role mappings
            var defaultPermissions = permissionProvider.GetDefaultPermissions().ToList();

            foreach (var permission in permissions)
            {
                var permission1 = GetPermissionRecordBySystemName(permission.SystemName);
                if (permission1 != null)
                {
                    continue;
                }

                //new permission (install it)
                permission1 = new PermissionRecord
                {
                    Name       = permission.Name,
                    SystemName = permission.SystemName,
                    Category   = permission.Category,
                };

                foreach (var defaultPermission in defaultPermissions)
                {
                    var customerRole = _customerService.GetCustomerRoleBySystemName(defaultPermission.CustomerRoleSystemName);
                    if (customerRole == null)
                    {
                        //new role (save it)
                        customerRole = new CustomerRole
                        {
                            Name       = defaultPermission.CustomerRoleSystemName,
                            Active     = true,
                            SystemName = defaultPermission.CustomerRoleSystemName
                        };
                        _customerService.InsertCustomerRole(customerRole);
                    }

                    var defaultMappingProvided = (from p in defaultPermission.PermissionRecords
                                                  where p.SystemName == permission1.SystemName
                                                  select p).Any();
                    var mappingExists = (from mapping in customerRole.PermissionRecordCustomerRoleMappings
                                         where mapping.PermissionRecord.SystemName == permission1.SystemName
                                         select mapping.PermissionRecord).Any();
                    if (defaultMappingProvided && !mappingExists)
                    {
                        //permission1.CustomerRoles.Add(customerRole);
                        permission1.PermissionRecordCustomerRoleMappings.Add(new PermissionRecordCustomerRoleMapping {
                            CustomerRole = customerRole
                        });
                    }
                }

                //save new permission
                InsertPermissionRecord(permission1);

                //save localization
                permission1.SaveLocalizedPermissionName(_localizationService, _languageService);
            }
        }
Example #4
0
        public ClaimsPrincipal SignIn(string email, string password)
        {
            var user = userProvider.GetUserByEmail(email);

            if (user.IsNullOrDefault() || !PBFDF2Hash.Verify(password, user.Password))
            {
                throw new WrongPasswordException();
            }

            if (!user.Active)
            {
                throw new DeactivatedException();
            }

            var permissions      = permissionProvider.GetPermissions(user);
            var permissionClaims = permissions.Select(x => new Claim($"{Claims.Permission}{x.Action}", x.Id.ToString()));

            var claims = new List <Claim>
            {
                new Claim(ClaimTypes.Email, user.Email),
                new Claim(ClaimTypes.Name, user.Email),
                new Claim(ClaimTypes.GivenName, user.Firstname),
                new Claim(ClaimTypes.Surname, user.Lastname),
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                new Claim(Claims.UserId, user.Id.ToString()),
            };

            claims.AddRange(permissionClaims);

            var userIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
            var principal    = new ClaimsPrincipal(userIdentity);

            return(principal);
        }
Example #5
0
        protected override UserViewModel ReloadViewModel(UserViewModel viewModel)
        {
            var permissions = permissionProvider
                              .GetPermissions(UserId)
                              .Select(x => x.Action)
                              .ToList();

            if (!permissions.Contains(Permissions.GetActionKey(Module.Dashboard, Type.User, Action.Edit)) &&
                (viewModel.Id <= default(int) || UserId != viewModel.Id))
            {
                return(CreateViewModel(UserId.ToString()));
            }

            var roles = roleProvider.GetAll()
                        .OrderBy(x => x.Name)
                        .Where(x => x.Active)
                        .ToList();
            var userRoles          = roleProvider.GetRolesForUser(viewModel.Id);
            var userRoleViewModels = roles.Select(
                role => new RoleViewModel
            {
                Id     = role.Id,
                Name   = role.Name,
                Active = userRoles.Any(y => y.Id == role.Id)
            });

            viewModel.RoleNames.AddRange(userRoles.Select(x => x.Name));
            viewModel.Roles.AddRange(userRoleViewModels);

            return(viewModel);
        }
Example #6
0
        /// <summary>
        /// 权限初始化
        /// </summary>
        /// <param name="permissionProvider"></param>
        public void InstallPermissions(IPermissionProvider permissionProvider)
        {
            //添加新的权限
            var permissions = permissionProvider.GetPermissions();

            foreach (var permission in permissions)
            {
                //是否有相同名称的权限
                var permission1 = GetPermissionRecordBySystemName(permission.SystemName);
                if (permission1 == null)
                {
                    permission1 = new PermissionRecord
                    {
                        Name       = permission.Name,
                        SystemName = permission.SystemName,
                        Category   = permission.Category
                    };

                    //获取默认的角色-权限对象
                    var defaultPermissions = permissionProvider.GetDefaultPermissions();
                    //遍历默认的权限对象
                    foreach (var defaultPermission in defaultPermissions)
                    {
                        //角色是否存在,反之创建角色
                        var customerRole = _customerService.GetCustomerRoleBySystemName(defaultPermission.CustomerRoleSystemName);
                        if (customerRole == null)
                        {
                            //创建角色
                            customerRole = new CustomerRole
                            {
                                Name       = defaultPermission.CustomerRoleSystemName,
                                Active     = true,
                                SystemName = defaultPermission.CustomerRoleSystemName
                            };

                            _customerService.InsertCustomerRole(customerRole);
                        }

                        //判断 默认角色权限集合中是否有权限
                        var defaultMappingProvided = (from p in defaultPermission.PermissionRecords
                                                      where p.SystemName == permission1.SystemName
                                                      select p
                                                      ).Any();

                        //是否已存在当前映射
                        var mappingExsits = (from p in customerRole.PermissionRecords
                                             where p.SystemName == permission1.SystemName
                                             select p).Any();

                        if (defaultMappingProvided && !mappingExsits)
                        {
                            permission1.CustomerRoles.Add(customerRole);
                        }
                    }

                    //保存新的权限
                    InsertPermissionRecord(permission1);
                }
            }
        }
        /// <summary>
        /// Install permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        /// <returns>A task that represents the asynchronous operation</returns>
        public virtual async Task UninstallPermissionsAsync(IPermissionProvider permissionProvider)
        {
            //default customer role mappings
            var defaultPermissions = permissionProvider.GetDefaultPermissions().ToList();

            //uninstall permissions
            foreach (var permission in permissionProvider.GetPermissions())
            {
                var permission1 = await GetPermissionRecordBySystemNameAsync(permission.SystemName);

                if (permission1 == null)
                {
                    continue;
                }

                //clear permission record customer role mapping
                foreach (var defaultPermission in defaultPermissions)
                {
                    var customerRole = await _customerService.GetCustomerRoleBySystemNameAsync(defaultPermission.systemRoleName);

                    await DeletePermissionRecordCustomerRoleMappingAsync(permission1.Id, customerRole.Id);
                }

                //delete permission
                await DeletePermissionRecordAsync(permission1);

                //save localization
                await _localizationService.DeleteLocalizedPermissionNameAsync(permission1);
            }
        }
        /// <summary>
        /// Install permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual void InstallPermissions(IPermissionProvider permissionProvider)
        {
            //install new permissions
            var permissions = permissionProvider.GetPermissions();
            //default customer role mappings
            var defaultPermissions = permissionProvider.GetDefaultPermissions().ToList();

            foreach (var permission in permissions)
            {
                var permission1 = GetPermissionRecordBySystemName(permission.SystemName);
                if (permission1 != null)
                {
                    continue;
                }

                //new permission (install it)
                permission1 = new PermissionRecord
                {
                    Name       = permission.Name,
                    SystemName = permission.SystemName,
                    Category   = permission.Category,
                };

                foreach (var defaultPermission in defaultPermissions)
                {
                    var customerRole = _customerService.GetCustomerRoleBySystemName(defaultPermission.CustomerRoleSystemName);
                    if (customerRole == null)
                    {
                        //new role (save it)
                        customerRole = new CustomerRole
                        {
                            Name       = defaultPermission.CustomerRoleSystemName,
                            Active     = true,
                            SystemName = defaultPermission.CustomerRoleSystemName
                        };
                        _customerService.InsertCustomerRole(customerRole);
                    }

                    var defaultMappingProvided = (from p in defaultPermission.PermissionRecords
                                                  where p.SystemName == permission1.SystemName
                                                  select p).Any();
                    var mappingExists = (from p in customerRole.PermissionRecord_Role_Mapping
                                         where p.CustomerRole.SystemName == permission1.SystemName
                                         select p).Any();
                    if (defaultMappingProvided && !mappingExists)
                    {
                        PermissionRecord_Role_Mapping permissionRecord_Role_Mapping = new PermissionRecord_Role_Mapping()
                        {
                            PermissionRecordId = permission1.Id,
                            CustomerRoleId     = customerRole.Id
                        };
                        InsertPermissionRecordRoleMapping(permissionRecord_Role_Mapping);
                    }
                }

                //save new permission
                InsertPermissionRecord(permission1);
            }
        }
Example #9
0
        public IActionResult Details(int?id)
        {
            var permissions = permissionProvider
                              .GetPermissions(UserId)
                              .Select(x => x.Action)
                              .ToList();

            if (!permissions.Contains(Permissions.GetActionKey(Module.Dashboard, Type.User, Action.Edit)) &&
                ((id ?? default(int)) <= default(int) || UserId != (id ?? default(int))))
            {
                return(Unauthorized());
            }

            var loader = GetLoader <UserViewModel, int>();

            return(View("Details", loader.Load(id ?? default(int))));
        }
Example #10
0
        /// <summary>
        /// Install permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual void InstallPermissions(IPermissionProvider permissionProvider)
        {
            //install new permissions
            var permissions = permissionProvider.GetPermissions();

            foreach (var permission in permissions)
            {
                var permission1 = GetPermissionRecordBySystemName(permission.SystemName);
                if (permission1 == null)
                {
                    //new permission (install it)
                    permission1 = new PermissionRecord
                    {
                        Name       = permission.Name,
                        SystemName = permission.SystemName,
                        Category   = permission.Category,
                    };


                    //default user role mappings
                    var defaultPermissions = permissionProvider.GetDefaultPermissions();
                    foreach (var defaultPermission in defaultPermissions)
                    {
                        var userRole = _userService.GetUserRoleBySystemName(defaultPermission.UserRoleSystemName);
                        if (userRole == null)
                        {
                            //new role (save it)
                            userRole = new UserRole
                            {
                                Name       = defaultPermission.UserRoleSystemName,
                                Active     = true,
                                SystemName = defaultPermission.UserRoleSystemName
                            };
                            _userService.InsertUserRole(userRole);
                        }


                        var defaultMappingProvided = (from p in defaultPermission.PermissionRecords
                                                      where p.SystemName == permission1.SystemName
                                                      select p).Any();
                        var mappingExists = (from p in userRole.PermissionRecords
                                             where p.SystemName == permission1.SystemName
                                             select p).Any();
                        if (defaultMappingProvided && !mappingExists)
                        {
                            permission1.UserRoles.Add(userRole);
                        }
                    }

                    //save new permission
                    InsertPermissionRecord(permission1);

                    //save localization
                    permission1.SaveLocalizedPermissionName(_localizationService, _languageService);
                }
            }
        }
        /// <summary>
        /// Install permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual void InstallPermissions(IPermissionProvider permissionProvider)
        {
            //install new permissions
            var permissions = permissionProvider.GetPermissions();

            foreach (var permission in permissions)
            {
                var permission1 = GetPermissionRecordBySystemName(permission.SystemName);
                if (permission1 == null)
                {
                    //new permission (install it)
                    permission1 = new PermissionRecord
                    {
                        Name       = permission.Name,
                        SystemName = permission.SystemName,
                        Category   = permission.Category,
                    };


                    //default customer role mappings
                    var defaultPermissions = permissionProvider.GetDefaultPermissions();
                    //foreach (var defaultPermission in defaultPermissions)
                    //{
                    //    var customerRole = _customerService.GetCustomerRoleBySystemName(defaultPermission.CustomerRoleSystemName);
                    //    if (customerRole == null)
                    //    {
                    //        //new role (save it)
                    //        customerRole = new CustomerRole
                    //        {
                    //            Name = defaultPermission.CustomerRoleSystemName,
                    //            Active = true,
                    //            SystemName = defaultPermission.CustomerRoleSystemName
                    //        };
                    //        _customerService.InsertCustomerRole(customerRole);
                    //    }


                    //    var defaultMappingProvided = (from p in defaultPermission.PermissionRecords
                    //                                  where p.SystemName == permission1.SystemName
                    //                                  select p).Any();
                    //    var mappingExists = (from p in customerRole.PermissionRecords
                    //                         where p.SystemName == permission1.SystemName
                    //                         select p).Any();
                    //    if (defaultMappingProvided && !mappingExists)
                    //    {
                    //        permission1.CustomerRoles.Add(customerRole);
                    //    }
                    //}

                    //save new permission
                    InsertPermissionRecord(permission1);

                    //save localization
                    //permission1.SaveLocalizedPermissionName(_localizationService, _languageService);
                }
            }
        }
        /// <summary>
        /// Install permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual void InstallPermissions(IPermissionProvider permissionProvider)
        {
            //install new permissions
            var permissions = permissionProvider.GetPermissions();
            //default customer role mappings
            var defaultPermissions = permissionProvider.GetDefaultPermissions().ToList();

            foreach (var permission in permissions)
            {
                var permission1 = GetPermissionRecordBySystemName(permission.SystemName);
                if (permission1 != null)
                {
                    continue;
                }

                //new permission (install it)
                permission1 = new PermissionRecord
                {
                    Name       = permission.Name,
                    SystemName = permission.SystemName,
                    Category   = permission.Category
                };

                //save new permission
                InsertPermissionRecord(permission1);

                foreach (var defaultPermission in defaultPermissions)
                {
                    var customerRole = _customerService.GetCustomerRoleBySystemName(defaultPermission.systemRoleName);
                    if (customerRole == null)
                    {
                        //new role (save it)
                        customerRole = new CustomerRole
                        {
                            Name       = defaultPermission.systemRoleName,
                            Active     = true,
                            SystemName = defaultPermission.systemRoleName
                        };
                        _customerService.InsertCustomerRole(customerRole);
                    }

                    var defaultMappingProvided = defaultPermission.permissions.Any(p => p.SystemName == permission1.SystemName);

                    if (!defaultMappingProvided)
                    {
                        continue;
                    }

                    InsertPermissionRecordCustomerRoleMapping(new PermissionRecordCustomerRoleMapping {
                        CustomerRoleId = customerRole.Id, PermissionRecordId = permission1.Id
                    });
                }

                //save localization
                _localizationService.SaveLocalizedPermissionName(permission1);
            }
        }
Example #13
0
        /// <summary>
        /// Install permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual void InstallPermissions(IPermissionProvider permissionProvider)
        {
            using (var scope = new DbContextScope(_permissionRecordRepository.Context, autoDetectChanges: false, autoCommit: false))
            {
                //install new permissions
                var permissions = permissionProvider.GetPermissions();
                foreach (var permission in permissions)
                {
                    var permission1 = GetPermissionRecordBySystemName(permission.SystemName);
                    if (permission1 == null)
                    {
                        //new permission (install it)
                        permission1 = new PermissionRecord()
                        {
                            Name       = permission.Name,
                            SystemName = permission.SystemName,
                            Category   = permission.Category,
                        };

                        // default customer role mappings
                        var defaultPermissions = permissionProvider.GetDefaultPermissions();
                        foreach (var defaultPermission in defaultPermissions)
                        {
                            var customerRole = _customerService.GetCustomerRoleBySystemName(defaultPermission.CustomerRoleSystemName);
                            if (customerRole == null)
                            {
                                //new role (save it)
                                customerRole = new CustomerRole
                                {
                                    Name       = defaultPermission.CustomerRoleSystemName,
                                    Active     = true,
                                    SystemName = defaultPermission.CustomerRoleSystemName
                                };
                                _customerService.InsertCustomerRole(customerRole);
                            }


                            var defaultMappingProvided = (from p in defaultPermission.PermissionRecords
                                                          where p.SystemName == permission1.SystemName
                                                          select p).Any();
                            var mappingExists = (from p in customerRole.PermissionRecords
                                                 where p.SystemName == permission1.SystemName
                                                 select p).Any();
                            if (defaultMappingProvided && !mappingExists)
                            {
                                permission1.CustomerRoles.Add(customerRole);
                            }
                        }

                        //save new permission
                        InsertPermissionRecord(permission1);
                    }
                }

                scope.Commit();
            }
        }
        /// <summary>
        /// Install permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual async Task InstallPermissions(IPermissionProvider permissionProvider)
        {
            //install new permissions
            var permissions = permissionProvider.GetPermissions();

            foreach (var permission in permissions)
            {
                var permission1 = await GetPermissionRecordBySystemName(permission.SystemName);

                if (permission1 == null)
                {
                    //new permission (install it)
                    permission1 = new PermissionRecord
                    {
                        Name       = permission.Name,
                        SystemName = permission.SystemName,
                        Category   = permission.Category,
                    };


                    //default customer role mappings
                    var defaultPermissions = permissionProvider.GetDefaultPermissions();
                    foreach (var defaultPermission in defaultPermissions)
                    {
                        var customerRole = await _customerService.GetCustomerRoleBySystemName(defaultPermission.CustomerRoleSystemName);

                        if (customerRole == null)
                        {
                            //new role (save it)
                            customerRole = new CustomerRole
                            {
                                Name       = defaultPermission.CustomerRoleSystemName,
                                Active     = true,
                                SystemName = defaultPermission.CustomerRoleSystemName
                            };
                            await _customerService.InsertCustomerRole(customerRole);
                        }


                        var defaultMappingProvided = (from p in defaultPermission.PermissionRecords
                                                      where p.SystemName == permission1.SystemName
                                                      select p).Any();
                        if (defaultMappingProvided)
                        {
                            permission1.CustomerRoles.Add(customerRole.Id);
                        }
                    }

                    //save new permission
                    await InsertPermissionRecord(permission1);

                    //save localization
                    await permission1.SaveLocalizedPermissionName(_localizationService, _languageService);
                }
            }
        }
Example #15
0
        /// <summary>
        /// Install permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual void InstallPermissions(IPermissionProvider permissionProvider)
        {
            //install new permissions
            var permissions = permissionProvider.GetPermissions();

            foreach (var permission in permissions)
            {
                var permission1 = GetPermissionRecordBySystemName(permission.SystemName);
                if (permission1 == null)
                {
                    //new permission (install it)
                    permission1 = new PermissionRecord
                    {
                        Name       = permission.Name,
                        SystemName = permission.SystemName,
                        Category   = permission.Category,
                    };


                    //default customer role mappings
                    var defaultPermissions = permissionProvider.GetDefaultPermissions();
                    foreach (var defaultPermission in defaultPermissions)
                    {
                        //var customerRole = _customerService.GetCustomerRoleBySystemName(defaultPermission.CustomerRoleSystemName);

                        /* if (customerRole == null)
                         * {
                         *   //new role (save it)
                         *   customerRole = new CustomerRole()
                         *   {
                         *       Name = defaultPermission.CustomerRoleSystemName,
                         *       Active = true,
                         *       SystemName = defaultPermission.CustomerRoleSystemName
                         *   };
                         *   _customerService.InsertCustomerRole(customerRole);
                         * }
                         *
                         *
                         * var defaultMappingProvided = (from p in defaultPermission.PermissionRecords
                         *                             where p.SystemName == permission1.SystemName
                         *                             select p).Any();
                         * var mappingExists = (from p in customerRole.PermissionRecords
                         *                    where p.SystemName == permission1.SystemName
                         *                    select p).Any();
                         * if (defaultMappingProvided && !mappingExists)
                         * {
                         *   permission1.CustomerRoles.Add(customerRole);
                         * }*/
                    }

                    //save new permission
                    InsertPermissionRecord(permission1);
                }
            }
        }
        public async Task InstallPermissions(IPermissionProvider permissionProvider)
        {
            //install new permissions
            var permissions = permissionProvider.GetPermissions();

            foreach (var permission in permissions)
            {
                var permission1 = await GetPermissionRecordBySystemName(permission.SystemName);

                //List<Role> listRoleToAdd = new List<Role>();
                if (permission1 == null)
                {
                    //new permission (install it)
                    permission1 = new PermissionRecord
                    {
                        Name       = permission.Name,
                        SystemName = permission.SystemName,
                        Category   = permission.Category,
                    };


                    //default customer role mappings
                    var defaultPermissions = permissionProvider.GetDefaultPermissions();
                    foreach (var defaultPermission in defaultPermissions)
                    {
                        //var role =await _roleService.GetRoleByName(defaultPermission.CustomerRoleSystemName);
                        //if (role != null)
                        //{
                        //    var permissionOfRole = await GetPermissionRecorsOfRole(role);
                        //    var defaultMappingProvided = (from p in defaultPermission.PermissionRecords
                        //                                  where p.SystemName == permission1.SystemName
                        //                                  select p).Any();
                        //    var mappingExists = (from p in permissionOfRole
                        //                         where p.SystemName == permission1.SystemName
                        //                         select p).Any();
                        //    if (defaultMappingProvided && !mappingExists)
                        //    {
                        //        //add role for permission
                        //        //listRoleToAdd.Add(role);
                        //    }
                        //}
                    }

                    //save new permission
                    await InsertAsync(permission1);

                    //foreach (var role in listRoleToAdd)
                    //{
                    //    await AddRoleToPermissionRecord(role, permission1);
                    //}
                }
            }
        }
Example #17
0
        /// <summary>
        /// Installe les permissions
        /// </summary>
        /// <param name="permissionProvider"></param>
        public virtual void InstallPermissions(IPermissionProvider permissionProvider)
        {
            IEnumerable <PermissionRecord> permissions = permissionProvider.GetPermissions();

            List <DefaultPermissionRecord> defaultPermissions = permissionProvider.GetDefaultPermissions().ToList();

            foreach (PermissionRecord permission in permissions)
            {
                PermissionRecord perm = GetPermissionRecordBySystemName(permission.SystemName);
                if (perm != null)
                {
                    continue;
                }

                perm = new PermissionRecord
                {
                    Name       = permission.Name,
                    SystemName = permission.SystemName
                };

                foreach (DefaultPermissionRecord defaultPermission in defaultPermissions)
                {
                    Role role = _roleService.Get(x => x.Name == defaultPermission.RoleSystemName).FirstOrDefault();
                    if (role == null)
                    {
                        role = new Role
                        {
                            Name       = defaultPermission.RoleSystemName,
                            Active     = true,
                            SystemName = defaultPermission.RoleSystemName
                        };
                        _roleService.Insert(role);
                    }

                    bool defaultMappingProvided = (from p in defaultPermission.PermissionRecords
                                                   where p.SystemName == perm.SystemName
                                                   select p).Any();

                    bool mappingExists = (from mapping in role.PermissionRecordRoleMappings
                                          where mapping.PermissionRecord.SystemName == perm.SystemName
                                          select mapping.PermissionRecord).Any();

                    if (defaultMappingProvided && !mappingExists)
                    {
                        perm.PermissionRecordRoleMappings.Add(new PermissionRecordRoleMapping {
                            AdministratorRole = role
                        });
                    }
                }
                InsertPermissionRecord(perm);
            }
        }
Example #18
0
        /// <summary>
        /// Uninstall permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual void UninstallPermissions(IPermissionProvider permissionProvider)
        {
            var permissions = permissionProvider.GetPermissions();

            foreach (var permission in permissions)
            {
                var permission1 = GetPermissionRecordBySystemName(permission.SystemName);
                if (permission1 != null)
                {
                    DeletePermissionRecord(permission1);
                }
            }
        }
Example #19
0
        public void UninstallPermissions(IPermissionProvider permissionProvider)
        {
            var permissions = permissionProvider.GetPermissions();

            foreach (var permission in permissions)
            {
                var permission1 = GetPermissionRecordBySystemName(permission.SystemName);
                if (permission1 != null)
                {
                    DeletePermissionRecord(permission1);
                    permission1.DeleteLocalizedPermissionName(_localizationService, _languageService);
                }
            }
        }
Example #20
0
        /// <summary>
        /// Install permissions
        /// </summary>
        public async Task InstallPermissionsAsync(IPermissionProvider permissionProvider)
        {
            var permissions        = permissionProvider.GetPermissions();
            var defaultPermissions = permissionProvider.GetDefaultPermissions();

            foreach (var permission in permissions)
            {
                var permission1 = GetPermissionBySystemName(permission.SystemName);
                if (permission1 != null)
                {
                    continue;
                }

                //new permission (install it)
                permission1 = new Permission
                {
                    Name       = permission.Name,
                    SystemName = permission.SystemName,
                    Category   = permission.Category,
                };

                foreach (var defaultPermission in defaultPermissions)
                {
                    var role = _userService.GetRoleBySystemName(defaultPermission.RoleSystemName);
                    if (role == null)
                    {
                        //new role (save it)
                        role = new Role
                        {
                            Name       = defaultPermission.RoleSystemName,
                            Active     = true,
                            SystemName = defaultPermission.RoleSystemName,
                        };
                        await _userService.InsertRoleAsync(role);
                    }

                    var defaultMappingProvided = defaultPermission.Permissions.Any(dp => dp.SystemName == permission1.SystemName);
                    var mappingExists          = role.PermissionRoles.Any(pr => pr.Permission.SystemName == permission1.SystemName);

                    if (defaultMappingProvided && !mappingExists)
                    {
                        permission1.PermissionRoles.Add(new PermissionRoles {
                            Role = role
                        });
                    }
                }

                InsertPermission(permission1);
            }
        }
Example #21
0
        /// <summary>
        /// Uninstall permissions
        /// </summary>
        public virtual void UninstallPermissions(IPermissionProvider permissionProvider)
        {
            var permissions = permissionProvider.GetPermissions();

            foreach (var permission in permissions)
            {
                var p = GetPermissionBySystemName(permission.SystemName);
                if (p == null)
                {
                    continue;
                }

                DeletePermission(p);
            }
        }
Example #22
0
        /// <summary>
        /// Désinstalle toutes les permissions
        /// </summary>
        /// <param name="permissionProvider"></param>
        public virtual void UninstallPermissions(IPermissionProvider permissionProvider)
        {
            IEnumerable <PermissionRecord> permissions = permissionProvider.GetPermissions();

            foreach (PermissionRecord permission in permissions)
            {
                var perm = GetPermissionRecordBySystemName(permission.SystemName);
                if (perm == null)
                {
                    continue;
                }

                DeletePermissionRecord(perm);
            }
        }
Example #23
0
        /// <summary>
        /// Uninstall permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual void UninstallPermissions(IPermissionProvider permissionProvider)
        {
            var permissions = permissionProvider.GetPermissions();
            foreach (var permission in permissions)
            {
                var permission1 = GetPermissionRecordBySystemName(permission.SystemName);
                if (permission1 == null)
                    continue;

                DeletePermissionRecord(permission1);

                //delete permission locales
                _localizationService.DeleteLocalizedPermissionName(permission1);
            }
        }
Example #24
0
        public void InstallPermissions(IPermissionProvider permissionProvider)
        {
            var permissions = permissionProvider.GetPermissions();

            foreach (var permission in permissions)
            {
                var permission1 = GetPermissionRecordBySystemName(permission.SystemName);
                if (permission1 == null)
                {
                    permission1 = new PermissionRecord()
                    {
                        Name       = permission.Name,
                        SystemName = permission.SystemName,
                        Category   = permission.Category
                    };

                    var defaultPermissions = permissionProvider.GetDefaultPermissions();
                    foreach (var defaultPermission in defaultPermissions)
                    {
                        var customerRole = _customerService.GetCustomerRoleBySystemName(defaultPermission.CustomerRoleSystemName);
                        if (customerRole == null)
                        {
                            customerRole = new CustomerRole()
                            {
                                Name       = defaultPermission.CustomerRoleSystemName,
                                Active     = true,
                                SystemName = defaultPermission.CustomerRoleSystemName
                            };
                            _customerService.InsertCustomerRole(customerRole);
                        }

                        var defaultMappingProvider = (from p in defaultPermission.PermissionRecords
                                                      where p.SystemName == permission1.SystemName
                                                      select p).Any();
                        var mappingExists = (from p in customerRole.PermissionRecords
                                             where p.SystemName == permission1.SystemName
                                             select p).Any();
                        if (defaultMappingProvider && !mappingExists)
                        {
                            permission1.CustomerRoles.Add(customerRole);
                        }
                    }

                    InsertPermissionRecord(permission1);
                    permission1.SaveLocalizedPermissionName(_localizationService, _languageService);
                }
            }
        }
        /// <summary>
        /// Uninstall permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual async Task UninstallPermissions(IPermissionProvider permissionProvider)
        {
            var permissions = permissionProvider.GetPermissions();

            foreach (var permission in permissions)
            {
                var permission1 = await GetPermissionRecordBySystemName(permission.SystemName);

                if (permission1 != null)
                {
                    await DeletePermissionRecord(permission1);

                    //delete permission locales
                    await permission1.DeleteLocalizedPermissionName(_localizationService, _languageService);
                }
            }
        }
Example #26
0
        public void InsertRoleFromSystem()
        {
            var permissionDefault = _permissionProvider.GetPermissions();
            var modelRole         = _appRoleRepo.TableNoTracking.ToList();

            permissionDefault = permissionDefault.Where(x => !modelRole.Select(b => b.Name).Contains(x.Name));
            if (permissionDefault.Count() > 0)
            {
                var appRoles = new List <AppRole>();
                foreach (var item in permissionDefault)
                {
                    var newAppRole = new AppRole();
                    newAppRole.Id          = Guid.NewGuid().ToString();
                    newAppRole.Name        = item.Name;
                    newAppRole.Description = item.Description;
                    appRoles.Add(newAppRole);
                }
                _appRoleRepo.Insert(appRoles);
            }
        }
Example #27
0
        protected void GetUserInformation()
        {
            var httpContext = httpContextAccessor.HttpContext;

            if (!httpContext.User.Identity.IsAuthenticated)
            {
                return;
            }

            var userId = httpContext.User.Claims
                         .First(x => x.Type == Claims.UserId)
                         .Value
                         .ToInt();

            var permissions = permissionProvider
                              .GetPermissions(userId);

            CurrentUser = userLoader.Load(userId.ToString());
            Actions     = permissions.Select(x => x.Action).ToList();
        }
Example #28
0
        protected void LoadUser()
        {
            if (LoadCurrentPermissions)
            {
                var httpContext = httpContextAccessor.HttpContext;

                if (httpContext.IsNullOrDefault() || !httpContext.User.Identity.IsAuthenticated)
                {
                    return;
                }

                var userId = httpContext.User.Claims
                             .First(x => x.Type == Claims.UserId)
                             .Value
                             .ToInt();

                var permissions = permissionProvider
                                  .GetPermissions(userId)
                                  .Select(x => x.Action);

                Actions.AddRange(permissions);
            }
        }
Example #29
0
        public static string ConvertPermissionProviderToXml(IPermissionProvider permissionProvider)
        {
            var xmlString = new StringBuilder();

            xmlString.AppendFormat("<{0}>", "permissionProvider");

            #region Permissions

            xmlString.AppendFormat("<{0}>", "permissions");

            foreach(var permission in permissionProvider.GetPermissions())
            {
                xmlString.Append(SerializePermission(permission));
            }

            xmlString.AppendFormat("</{0}>", "permissions");

            #endregion

            #region Default Permissions

            xmlString.AppendFormat("<{0}>", "defaultPermissions");

            foreach (var defaultPermission in permissionProvider.GetDefaultPermissions())
            {
                xmlString.AppendLine(SerializeDefaultPermission(defaultPermission));
            }

            xmlString.AppendFormat("</{0}>", "defaultPermissions");

            #endregion

            xmlString.AppendFormat("</{0}>", "permissionProvider");

            return xmlString.ToString();
        }
Example #30
0
        public static string ConvertPermissionProviderToXml(IPermissionProvider permissionProvider)
        {
            var xmlString = new StringBuilder();

            xmlString.AppendFormat("<{0}>", "permissionProvider");

            #region Permissions

            xmlString.AppendFormat("<{0}>", "permissions");

            foreach (var permission in permissionProvider.GetPermissions())
            {
                xmlString.Append(SerializePermission(permission));
            }

            xmlString.AppendFormat("</{0}>", "permissions");

            #endregion

            #region Default Permissions

            xmlString.AppendFormat("<{0}>", "defaultPermissions");

            foreach (var defaultPermission in permissionProvider.GetDefaultPermissions())
            {
                xmlString.AppendLine(SerializeDefaultPermission(defaultPermission));
            }

            xmlString.AppendFormat("</{0}>", "defaultPermissions");

            #endregion

            xmlString.AppendFormat("</{0}>", "permissionProvider");

            return(xmlString.ToString());
        }
Example #31
0
 /// <summary>
 /// Uninstall permissions
 /// </summary>
 /// <param name="permissionProvider">Permission provider</param>
 public virtual void Uninstall(IPermissionProvider permissionProvider)
 {
     var permissions = permissionProvider.GetPermissions();
     foreach (var permission in permissions)
     {
         var permission1 = GetBySystemName(permission.SystemName);
         if (permission1 != null)
         {
             Delete(permission1);
         }
     }
 }
Example #32
0
        /// <summary>
        /// Install permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual void Install(IPermissionProvider permissionProvider)
        {
            //install new permissions
            var permissions = permissionProvider.GetPermissions();
            foreach (var permission in permissions)
            {
                var permission1 = GetBySystemName(permission.SystemName);
                if (permission1 == null)
                {
                    //new permission (install it)
                    permission1 = new PermissionRecord()
                    {
                        Name       = permission.Name,
                        SystemName = permission.SystemName,
                        Category   = permission.Category,
                    };

                    //default customer role mappings
                    var defaultPermissions = permissionProvider.GetDefaultPermissions();
                    foreach (var defaultPermission in defaultPermissions)
                    {
                        var userRole = userService.GetUserRoleBySystemName(defaultPermission.UserRoleSystemName);
                        if (userRole == null)
                        {
                            //new role (save it)
                            userRole = new UserRole()
                            {
                                Name       = defaultPermission.UserRoleSystemName,
                                Active     = true,
                                SystemName = defaultPermission.UserRoleSystemName
                            };
                            userService.InsertUserRole(userRole);
                        }

                        var defaultMappingProvided = (from p in defaultPermission.PermissionRecords
                                                      where p.SystemName == permission1.SystemName
                                                      select p).Any();
                        var mappingExists = (from p in userRole.PermissionRecords
                                             where p.SystemName == permission1.SystemName
                                             select p).Any();
                        if (defaultMappingProvided && !mappingExists)
                        {
                            permission1.UserRoles.Add(userRole);
                        }
                    }

                    //save new permission
                    Insert(permission1);
                }
            }
        }
        /// <summary>
        /// Uninstall permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual void UninstallPermissions(IPermissionProvider permissionProvider)
        {
            var permissions = permissionProvider.GetPermissions();
            foreach (var permission in permissions)
            {
                var permission1 = GetPermissionRecordBySystemName(permission.SystemName);
                if (permission1 != null)
                {
                    DeletePermissionRecord(permission1);

                    //delete permission locales
                    permission1.DeleteLocalizedPermissionName(_localizationService, _languageService);
                }
            }
        }
        /// <summary>
        /// Install permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual void InstallPermissions(IPermissionProvider permissionProvider)
        {
            //install new permissions
            var permissions = permissionProvider.GetPermissions();
            foreach (var permission in permissions)
            {
                var permission1 = GetPermissionRecordBySystemName(permission.SystemName);
                if (permission1 == null)
                {
                    //new permission (install it)
                    permission1 = new PermissionRecord
                    {
                        Name = permission.Name,
                        SystemName = permission.SystemName,
                        Category = permission.Category,
                    };

                    //default customer role mappings
                    var defaultPermissions = permissionProvider.GetDefaultPermissions();
                    foreach (var defaultPermission in defaultPermissions)
                    {
                        var customerRole = _customerService.GetCustomerRoleBySystemName(defaultPermission.CustomerRoleSystemName);
                        if (customerRole == null)
                        {
                            //new role (save it)
                            customerRole = new CustomerRole
                            {
                                Name = defaultPermission.CustomerRoleSystemName,
                                Active = true,
                                SystemName = defaultPermission.CustomerRoleSystemName
                            };
                            _customerService.InsertCustomerRole(customerRole);
                        }

                        var defaultMappingProvided = (from p in defaultPermission.PermissionRecords
                                                      where p.SystemName == permission1.SystemName
                                                      select p).Any();
                        var mappingExists = (from p in customerRole.PermissionRecords
                                             where p.SystemName == permission1.SystemName
                                             select p).Any();
                        if (defaultMappingProvided && !mappingExists)
                        {
                            permission1.CustomerRoles.Add(customerRole);
                        }
                    }

                    //save new permission
                    InsertPermissionRecord(permission1);

                    //save localization
                    permission1.SaveLocalizedPermissionName(_localizationService, _languageService);
                }
            }
        }
Example #35
0
 private Task <IEnumerable <PermissionInfo> > GetProviderPermissions(IPermissionProvider provider)
 {
     return(Task.FromResult(provider.GetPermissions()));
 }
Example #36
0
        /// <summary>
        /// Install permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual void InstallPermissions(IPermissionProvider permissionProvider)
        {
            using (var scope = new DbContextScope(_permissionRecordRepository.Context, autoDetectChanges: false, autoCommit: false))
            {
                //install new permissions
                var permissions = permissionProvider.GetPermissions();
                foreach (var permission in permissions)
                {
                    var permission1 = GetPermissionRecordBySystemName(permission.SystemName);
                    if (permission1 == null)
                    {
                        //new permission (install it)
                        permission1 = new PermissionRecord()
                        {
                            Name = permission.Name,
                            SystemName = permission.SystemName,
                            Category = permission.Category,
                        };

                        // default customer role mappings
                        var defaultPermissions = permissionProvider.GetDefaultPermissions();
                        foreach (var defaultPermission in defaultPermissions)
                        {
                            var customerRole = _customerService.GetCustomerRoleBySystemName(defaultPermission.CustomerRoleSystemName);
                            if (customerRole == null)
                            {
                                //new role (save it)
                                customerRole = new CustomerRole()
                                {
                                    Name = defaultPermission.CustomerRoleSystemName,
                                    Active = true,
                                    SystemName = defaultPermission.CustomerRoleSystemName
                                };
                                _customerService.InsertCustomerRole(customerRole);
                            }

                            var defaultMappingProvided = (from p in defaultPermission.PermissionRecords
                                                            where p.SystemName == permission1.SystemName
                                                            select p).Any();
                            var mappingExists = (from p in customerRole.PermissionRecords
                                                    where p.SystemName == permission1.SystemName
                                                    select p).Any();
                            if (defaultMappingProvided && !mappingExists)
                            {
                                permission1.CustomerRoles.Add(customerRole);
                            }
                        }

                        //save new permission
                        InsertPermissionRecord(permission1);
                    }
                }

                scope.Commit();
            }
        }
        /// <summary>
        /// Install permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual void InstallPermissions(IPermissionProvider permissionProvider)
        {
            //NB Can we find a way to automatically delete permissions?

            //install new permissions
            var permissions = permissionProvider.GetPermissions();
            foreach (var permission in permissions)
            {
                var permission1 = GetSystemPermissionBySystemName(permission.SystemName);
                if (permission1 == null)
                {
                    //new permission (install it)
                    permission1 = new SystemPermission
                    {
                        Name = permission.Name,
                        SystemName = permission.SystemName,
                        Category = permission.Category,
                        DateCreated = DateTime.UtcNow,
                        DateUpdated = DateTime.UtcNow
                    };

                    //save new permission
                    InsertSystemPermission(permission1);

                    //default customer role mappings
                    var defaultPermissions = permissionProvider.GetDefaultPermissions();
                    foreach (var defaultPermission in defaultPermissions)
                    {
                        var role = SystemUserService.GetSystemRoleBySystemName(defaultPermission.RoleSystemName);
                        if (role == null)
                        {
                            //new role (save it)
                            role = new SystemRole
                            {
                                Name = defaultPermission.RoleSystemName,
                                Active = true,
                                SystemName = defaultPermission.RoleSystemName,
                                DateCreated = DateTime.UtcNow,
                                DateModified = DateTime.UtcNow
                            };
                            SystemUserService.InsertRole(role);
                        }

                        role = SystemUserService.GetSystemRoleById(role.SystemRoleId, false);

                        var defaultMappingProvided = (from p in defaultPermission.SystemPermissions
                                                      where p.SystemName == permission1.SystemName
                                                      select p).Any();
                        var mappingExists = (from p in role.SystemRolePermissions.Select(rpr => rpr.SystemPermission)
                                             where p.SystemName == permission1.SystemName
                                             select p).Any();
                        if (defaultMappingProvided && !mappingExists)
                        {
                            InsertSystemRolePermission(new SystemRolePermission
                            {
                                DateCreated = DateTime.UtcNow,
                                SystemRoleId = role.SystemRoleId,
                                SystemPermissionId = permission1.SystemPermissionId
                            });
                        }
                    }


                }
            }

            ClearCache();
        }
Example #38
0
        /// <summary>
        /// Install permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        /// <param name="reInstall">If true and the provider has already been installed, it will re add the permissions with the associated default permissions.
        /// If not, nothing will be done with the permissions.</param>
        /// <remarks></remarks>
        public virtual void InstallPermissions(IPermissionProvider permissionProvider, bool reInstall = false)
        {
            var providerName = permissionProvider.GetType().Name;

            if(reInstall)
                _permissionsInstalledCollection.Remove(Query<PermissionInstalled>.EQ(x => x.Name, providerName));
            else
                if (_permissionsInstalledCollection.Count(Query<PermissionInstalled>.EQ(x => x.Name, providerName)) == 1)
                    return;

            _permissionsInstalledCollection.Insert(new PermissionInstalled { Name = providerName });

            foreach(var permission in permissionProvider.GetPermissions())
            {
                var existing = _permissionPecordCollection.FindOne(Query<PermissionRecord>.EQ(x => x.SystemName, permission.SystemName)) ?? new PermissionRecord();

                existing.Category = permission.Category;
                existing.Name = permission.Name;
                existing.SystemName = permission.SystemName;

                if(existing.Id == ObjectId.Empty)
                    _permissionPecordCollection.Insert(existing);
                else
                    _permissionPecordCollection.Update(Query<PermissionRecord>.EQ(x => x.Id, existing.Id), Update<PermissionRecord>.Replace(existing));
            }

            foreach(var defaultPermission in permissionProvider.GetDefaultPermissions())
            {
                var role = _userRoleCollection.FindOne(Query<UserRole>.EQ(x => x.SystemName, defaultPermission.UserRoleSystemName));
                if(role == null)
                {
                    role = new UserRole
                    {
                        Active = true,
                        IsSystemRole = false,
                        Name = defaultPermission.UserRoleSystemName,
                        SystemName = defaultPermission.UserRoleSystemName
                    };
                    _userRoleCollection.Insert(role);
                }
                foreach(var defaultPermissionRecord in defaultPermission.PermissionRecords)
                {
                    var dbPermissionRecord = _permissionPecordCollection.FindOne(Query<PermissionRecord>.EQ(x => x.SystemName, defaultPermissionRecord.SystemName));

                    if(dbPermissionRecord == null)
                        throw new InvalidOperationException("The permission provider " + providerName + " is trying to install a default permission for permission " + defaultPermissionRecord.SystemName + " but it isn't provided via GetDefaultPermissions or another IPermissionProvider");

                    var query = Query.And(Query<RolePermissionMap>.EQ(x => x.PermissionRecordId, dbPermissionRecord.Id), Query<RolePermissionMap>.EQ(x => x.UserRoleId, role.Id));

                    var existing = _rolePermissionMapCollection.FindOne(query);

                    if(existing != null)
                        continue;

                    _rolePermissionMapCollection.Insert(new RolePermissionMap
                    {
                        PermissionRecordId = dbPermissionRecord.Id,
                        UserRoleId = role.Id
                    });
                }
            }
        }
        /// <summary>
        /// Install permissions
        /// </summary>
        /// <param name="permissionProvider">Permission provider</param>
        public virtual void InstallPermissions(IPermissionProvider permissionProvider)
        {
            //install new permissions
            var permissions = permissionProvider.GetPermissions();
            foreach (var permission in permissions)
            {
                var permission1 = GetPermissionRecordBySystemName(permission.SystemName);
                if (permission1 == null)
                {
                    //new permission (install it)
                    permission1 = new PermissionRecord()
                    {
                        Name = permission.Name,
                        SystemName = permission.SystemName,
                        Category = permission.Category,
                    };

                    //default account role mappings
                    var defaultPermissions = permissionProvider.GetDefaultPermissions();
                    foreach (var defaultPermission in defaultPermissions)
                    {
                        var accountRole = _accountService.GetAccountRoleBySystemName(defaultPermission.AccountRoleSystemName);
                        if (accountRole == null)
                        {
                            //new role (save it)
                            accountRole = new AccountRole()
                            {
                                Name = defaultPermission.AccountRoleSystemName,
                                Active = true,
                                SystemName = defaultPermission.AccountRoleSystemName
                            };
                            _accountService.InsertAccountRole(accountRole);
                        }

                        var defaultMappingProvided = (from p in defaultPermission.PermissionRecords
                                                      where p.SystemName == permission1.SystemName
                                                      select p).Any();
                        var mappingExists = (from p in accountRole.PermissionRecords
                                             where p.SystemName == permission1.SystemName
                                             select p).Any();
                        if (defaultMappingProvided && !mappingExists)
                        {
                            permission1.AccountRoles.Add(accountRole);
                        }
                    }

                    //save new permission
                    InsertPermissionRecord(permission1);
                }
            }
        }