Пример #1
0
        /// <summary>
        /// Authorize permission
        /// </summary>
        /// <param name="permission">Permission record</param>
        /// <param name="customer">Customer</param>
        /// <returns>true - authorized; otherwise, false</returns>
        public virtual bool Authorize(PermissionRecord permission, PersonalInformation person)
        {
            bool answer = false;
            if (permission == null)
                return answer;

            if (person == null)
                return answer;

            var query = from p in _permissionRecordRepository.Table
                        where p.Id == person.Id && p.Description.ToLower() == permission.Description.ToLower()
                        //where p.Name == permission.Name && p.Description.ToLower() == permission.Description.ToLower()
                        select p;

            if (query.Count() == 0)
            {
                query = from p in _rolePermissionRep.Table
                        where p.TelehireRole.RoleName.ToLower() == person.UserRole.ToLower() && p.Permission.Description.ToLower() == permission.Description.ToLower()
                        select p.Permission;

                if (query.Count() > 0)
                    answer = true;
            }

            else
                answer = true;

            return answer;

            //throw new NotImplementedException();
        }
        /// <summary>
        /// Delete a permission
        /// </summary>
        /// <param name="permission">Permission</param>
        public virtual async Task DeletePermissionRecord(PermissionRecord permission)
        {
            if (permission == null)
            {
                throw new ArgumentNullException("permission");
            }

            await _permissionRecordRepository.DeleteAsync(permission);

            await _cacheBase.RemoveByPrefix(CacheKey.PERMISSIONS_PATTERN_KEY);
        }
Пример #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 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
                };

                //save new permission
                InsertPermissionRecord(permission1);

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

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

                    if (!defaultMappingProvided)
                    {
                        continue;
                    }

                    InsertPermissionRecordUserRoleMapping(new PermissionRecordUserRoleMapping {
                        UserRoleId = userRole.Id, PermissionRecordId = permission1.Id
                    });
                }
            }
        }
Пример #4
0
 private void AddMapping(PermissionRecord permission, CustomerRole role, bool allow)
 {
     permission.PermissionRoleMappings.Add(new PermissionRoleMapping
     {
         CustomerRoleId     = role.Id,
         CustomerRole       = role,
         PermissionRecordId = permission.Id,
         PermissionRecord   = permission,
         Allow = allow
     });
 }
Пример #5
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);
                }
            }
        }
        /// <summary>
        /// Updates the permission
        /// </summary>
        /// <param name="permission">Permission</param>
        public virtual void UpdatePermissionRecord(PermissionRecord permission)
        {
            if (permission == null)
            {
                throw new ArgumentNullException("permission");
            }

            //todo...mapping

            base.SubmitContext();
        }
Пример #7
0
        /// <summary>
        /// 添加权限项
        /// </summary>
        /// <param name="permission">权限项</param>
        public virtual void InsertPermissionRecord(PermissionRecord permission)
        {
            if (permission == null)
            {
                throw new ArgumentNullException(nameof(permission));
            }

            _permissionRecordRepository.Insert(permission);

            _cacheManager.RemoveByPattern(PERMISSIONS_PATTERN_KEY);
        }
Пример #8
0
        public void DeletePermissionRecord(PermissionRecord permission)
        {
            if (permission == null)
            {
                throw new ArgumentNullException("permission");
            }

            _permissionPecordRepository.Delete(permission);
            //这个是干嘛的
            _cacheManager.RemoveByPattern(PERMISSIONS_PATTERN_KEY);
        }
Пример #9
0
        /// <summary>
        /// Updates the permission
        /// </summary>
        /// <param name="permission">Permission</param>
        public virtual void UpdatePermissionRecord(PermissionRecord permission)
        {
            if (permission == null)
            {
                throw new ArgumentNullException("permission");
            }

            _permissionRecordRepository.Update(permission);

            _cacheManager.RemoveByPattern(PERMISSIONS_PATTERN_KEY);
        }
Пример #10
0
        /// <summary>
        /// Updates the permission
        /// </summary>
        /// <param name="permission">Permission</param>
        public virtual void UpdatePermissionRecord(PermissionRecord permission)
        {
            if (permission == null)
            {
                throw new ArgumentNullException("permission");
            }

            _permissionRecordRepository.Update(permission);

            //_unitOfWork.Commit();
        }
Пример #11
0
        /// <summary>
        /// Inserts a permission
        /// </summary>
        /// <param name="permission">Permission</param>
        public virtual async Task InsertPermissionRecord(PermissionRecord permission)
        {
            if (permission == null)
            {
                throw new ArgumentNullException("permission");
            }

            await _permissionRecordRepository.InsertAsync(permission);

            await _cacheManager.RemoveByPrefix(PERMISSIONS_PATTERN_KEY);
        }
Пример #12
0
        /// <summary>
        /// Delete a permission
        /// </summary>
        /// <param name="permission">Permission</param>
        public virtual async Task DeletePermissionRecord(PermissionRecord permission)
        {
            if (permission == null)
            {
                throw new ArgumentNullException("permission");
            }

            await _permissionRecordRepository.DeleteAsync(permission);

            _cacheManager.RemoveByPattern(PERMISSIONS_PATTERN_KEY);
        }
Пример #13
0
        public void UpdateRole(int id, string roleName, IEnumerable <string> rolePermissions)
        {
            var roleRecord         = GetRole(id);
            var currentRoleName    = roleRecord.Name;
            var currentPermissions = roleRecord.RolesPermissions.ToDictionary(x => x.Permission.Name);

            roleRecord.Name = roleName;
            roleRecord.RolesPermissions.Clear();

            if (!String.Equals(currentRoleName, roleName))
            {
                _roleEventHandlers.Renamed(new RoleRenamedContext {
                    Role = roleRecord, NewRoleName = roleName, PreviousRoleName = currentRoleName
                });
            }

            foreach (var rolePermission in rolePermissions)
            {
                string permission = rolePermission;
                if (_permissionRepository.Get(x => x.Name == permission) == null)
                {
                    _permissionRepository.Create(new PermissionRecord
                    {
                        Description = GetPermissionDescription(permission),
                        Name        = permission,
                        FeatureName = GetFeatureName(permission)
                    });
                }
                PermissionRecord permissionRecord = _permissionRepository.Get(x => x.Name == permission);
                roleRecord.RolesPermissions.Add(new RolesPermissionsRecord {
                    Permission = permissionRecord, Role = roleRecord
                });

                if (!currentPermissions.ContainsKey(permission))
                {
                    _roleEventHandlers.PermissionAdded(new PermissionAddedContext {
                        Role = roleRecord, Permission = permissionRecord
                    });
                }
                else
                {
                    currentPermissions.Remove(permission);
                }
            }

            foreach (var permission in currentPermissions.Values)
            {
                _roleEventHandlers.PermissionRemoved(new PermissionRemovedContext {
                    Role = roleRecord, Permission = permission.Permission
                });
            }

            TriggerSignal();
        }
        /// <summary>
        /// Inserts a permission
        /// </summary>
        /// <param name="permission">Permission</param>
        public virtual void InsertPermissionRecord(PermissionRecord permission)
        {
            if (permission == null)
            {
                throw new ArgumentNullException("permission");
            }

            _dataContext.PermissionRecords.InsertOnSubmit(permission);

            base.SubmitContext();
        }
        public void Can_save_and_load_permissionRecord()
        {
            var permissionRecord = new PermissionRecord
            {
                SystemName = "SystemName 2"
            };

            var fromDb = SaveAndLoadEntity(permissionRecord);

            fromDb.ShouldNotBeNull();
            fromDb.SystemName.ShouldEqual("SystemName 2");
        }
Пример #16
0
        /// <summary>
        /// Inserts a permission
        /// </summary>
        /// <param name="permission">Permission</param>
        public virtual void InsertPermissionRecord(PermissionRecord permission)
        {
            if (permission == null)
            {
                throw new ArgumentNullException(nameof(permission));
            }

            _permissionRecordRepository.Insert(permission);

            //event notification
            _eventPublisher.EntityInserted(permission);
        }
        public void EntityCreatedHandler_UpdatesExistsUserPermissions()
        {
            var expPr = new PermissionRecord("c", "r", "u", "d");
            var ecr   = new EntityConfigRecord {
                Type = typeof(TestClass), PermissionRecord = expPr
            };
            var sp = new Mock <IServiceProvider>();

            sp.Setup(s => s.GetService(typeof(IEnumerable <EntityConfigRecord>))).Returns(new[] { ecr });

            var userId = "uId";
            var dbUp   = new UserPermissions
            {
                UserId            = userId,
                EntityPermissions = new[] {
                    new EntityPermission
                    {
                        EntityId       = "eId",
                        EntityKey      = "ek",
                        PermissionKeys = new[] { "r1", "u1", "d1", },
                    },
                }
            };
            var pm = new Mock <IPermissionManager>();

            pm.Setup(p => p.GetUserPermissions(It.IsAny <string>())).ReturnsAsync(dbUp);
            sp.Setup(s => s.GetService(typeof(IPermissionManager))).Returns(pm.Object);
            var data = new TestClass
            {
                Value = 123
            };

            var ed = new DomainEvent
            {
                Data = data,
                PerformedByUserId = userId,
                WorkContext       = new WorkContext {
                    CurrentEntityConfigRecord = ecr
                },
            };
            var ph = new DefaultPermissionsEventsHandler(sp.Object);

            ph.PermissionCreatedHandler(ed);
            Thread.Sleep(250);

            pm.Verify(p => p.UpdateUserPermissions(It.Is <UserPermissions>(
                                                       up => up.UserId == userId &&
                                                       up.EntityPermissions.Count() == 2 &&
                                                       up.EntityPermissions.ElementAt(1).PermissionKeys.Contains(expPr.ReadKey) &&
                                                       up.EntityPermissions.ElementAt(1).PermissionKeys.Contains(expPr.UpdateKey) &&
                                                       up.EntityPermissions.ElementAt(1).PermissionKeys.Contains(expPr.DeleteKey))),
                      Times.Once);
        }
Пример #18
0
        /// <summary>
        /// Delete a permission
        /// </summary>
        /// <param name="permission">Permission</param>
        public virtual void DeletePermissionRecord(PermissionRecord permission)
        {
            if (permission == null)
            {
                throw new ArgumentNullException(nameof(permission));
            }

            _permissionRecordRepository.Delete(permission);

            //event notification
            //  _eventPublisher.EntityDeleted(permission);
        }
Пример #19
0
        /// <summary>
        /// Insère une nouvelle permission
        /// </summary>
        /// <param name="permission"></param>
        public virtual void InsertPermissionRecord(PermissionRecord permission)
        {
            if (permission == null)
            {
                throw new ArgumentNullException(nameof(permission));
            }

            permission.CreatedOnUtc = DateTime.UtcNow;
            permission.UpdatedOnUtc = DateTime.UtcNow;

            _permissionRecordRepository.Insert(permission);
        }
Пример #20
0
        /// <summary>
        /// Updates the permission
        /// </summary>
        /// <param name="permission">Permission</param>
        public virtual void UpdatePermissionRecord(PermissionRecord permission)
        {
            if (permission == null)
            {
                throw new ArgumentNullException(nameof(permission));
            }

            _permissionRecordRepository.Update(permission);

            _cacheManager.RemoveByPattern(NopSecurityDefaults.PermissionsPatternCacheKey);
            _staticCacheManager.RemoveByPattern(NopSecurityDefaults.PermissionsPatternCacheKey);
        }
Пример #21
0
 public bool Authorize(PermissionRecord permission, Customer customer)
 {
     if (permission == null)
     {
         return(false);
     }
     if (customer == null)
     {
         return(false);
     }
     return(Authorize(permission.SystemName, customer));
 }
Пример #22
0
        /// <summary>
        /// Inserts a permission
        /// </summary>
        /// <param name="permission">Permission</param>
        public virtual void InsertPermissionRecord(PermissionRecord permission)
        {
            if (permission == null)
            {
                throw new ArgumentNullException(nameof(permission));
            }

            _permissionRecordRepository.Insert(permission);

            _cacheManager.RemoveByPrefix(NopSecurityDefaults.PermissionsPrefixCacheKey);
            _staticCacheManager.RemoveByPrefix(NopSecurityDefaults.PermissionsPrefixCacheKey);
        }
Пример #23
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);
            }
        }
Пример #24
0
        public ActionResult ConfigureProvider(string systemName, string listUrl)
        {
            var provider = _providerManager.GetProvider(systemName);

            if (provider == null || !provider.Metadata.IsConfigurable)
            {
                return(HttpNotFound());
            }

            PermissionRecord requiredPermission = StandardPermissionProvider.AccessAdminPanel;
            var listUrl2 = Url.Action("List");

            var metadata = provider.Metadata;

            //if (metadata.ProviderType == typeof(IPaymentMethod))
            //{
            //    requiredPermission = StandardPermissionProvider.ManagePaymentMethods;
            //    listUrl2 = Url.Action("Providers", "Payment");
            //}
            //if (metadata.ProviderType == typeof(ITaxProvider))
            //{
            //    requiredPermission = StandardPermissionProvider.ManageTaxSettings;
            //    listUrl2 = Url.Action("Providers", "Tax");
            //}
            //else if (metadata.ProviderType == typeof(IShippingRateComputationMethod))
            //{
            //    requiredPermission = StandardPermissionProvider.ManageShippingSettings;
            //    listUrl2 = Url.Action("Providers", "Shipping");
            //}
            // else
            if (metadata.ProviderType == typeof(IWidget))
            {
                requiredPermission = StandardPermissionProvider.ManageWidgets;
                listUrl2           = Url.Action("Providers", "Widget");
            }
            else if (metadata.ProviderType == typeof(IExternalAuthenticationMethod))
            {
                requiredPermission = StandardPermissionProvider.ManageExternalAuthenticationMethods;
                listUrl2           = Url.Action("Providers", "ExternalAuthentication");
            }

            if (!_permissionService.Authorize(requiredPermission))
            {
                return(AccessDeniedView());
            }

            var model = _pluginMediator.ToProviderModel(provider);

            ViewBag.ListUrl = listUrl.NullEmpty() ?? listUrl2;

            return(View(model));
        }
Пример #25
0
        public virtual void InsertPermissionRecord(string moduleName, string featureName, string featureActionName)
        {
            int displayOrder = 0;
            var module       = _moduleRepository.GetAll().FirstOrDefault(m => m.Name == moduleName);

            if (module == null)
            {
                displayOrder = _moduleRepository.GetAll().Max(m => m.DisplayOrder);
                module       = new Module {
                    Name = moduleName, Description = moduleName + " Module", DisplayOrder = displayOrder + 1
                };
                _moduleRepository.InsertAndCommit(module);
            }

            var feature = _featureRepository.GetAll().FirstOrDefault(f => f.Name == featureName);

            if (feature == null)
            {
                displayOrder = _featureRepository.GetAll().Where(f => f.ModuleId == module.Id).Max(m => m.DisplayOrder);
                feature      = new Feature {
                    Name = moduleName, Description = featureName + " Feature", DisplayOrder = displayOrder + 1
                };
                _featureRepository.InsertAndCommit(feature);
            }

            var featureAction = _featureActionRepository.GetAll().FirstOrDefault(f => f.Name == featureActionName);

            if (module == null)
            {
                displayOrder  = _featureActionRepository.GetAll().Where(f => f.FeatureId == feature.Id).Max(m => m.DisplayOrder);
                featureAction = new FeatureAction {
                    Name = featureActionName, Description = featureActionName, DisplayOrder = displayOrder + 1
                };
                _featureActionRepository.InsertAndCommit(featureAction);
            }

            var permissionRecord = _permissionRecordRepository.GetAll()
                                   .FirstOrDefault(p => p.ModuleId == module.Id && p.FeatureId == feature.Id && p.FeatureActionId == featureAction.Id);

            if (permissionRecord == null)
            {
                permissionRecord = new PermissionRecord
                {
                    ModuleId        = module.Id,
                    FeatureId       = feature.Id,
                    FeatureActionId = featureAction.Id,
                    Name            = string.Format("{0}.{1}.{2}", module.Name.Replace(" ", ""), feature.Name.Replace(" ", ""), featureAction.Name.Replace(" ", ""))
                };

                _permissionRecordRepository.InsertAndCommit(permissionRecord);
            }
        }
        public virtual bool Authorize(PermissionRecord permission, User user)
        {
            if (permission == null)
            {
                return(false);
            }

            if (user == null)
            {
                return(false);
            }
            return(Authorize(permission.SystemName, user));
        }
Пример #27
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
                };

                //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);
            }
        }
Пример #28
0
        public void ManageSiteMap(SiteMapNode rootNode)
        {
            var permissionService = EngineContext.Current.Resolve <IPermissionService>();
            var permissionRecord  = new PermissionRecord
            {
                Category   = "Plugin",
                SystemName = "ManagerWarehouse",
                Name       = "Admin area. Manager Warehouse"
            };

            //if (permissionService.Authorize(permissionRecord))
            //{
            var parentNode = new SiteMapNode
            {
                SystemName = "ManagerWarehouse",
                Title      = "Manager Of Warehouse",
                //ActionName = " ",
                ControllerName = "ManagerWarehouse",
                Visible        = true,
                RouteValues    = new RouteValueDictionary {
                    { "area", null }
                }
            };

            var manageState = new SiteMapNode
            {
                SystemName     = "WidgetPromoSlider",
                Title          = "States of Flow",//_localizationService.GetResource("Plugins.Widget.PromoSlider.Menu.ManagerSliders"),
                ActionName     = "WarehouseState",
                ControllerName = "ManagerWarehouse",
                Visible        = true,
                RouteValues    = new RouteValueDictionary {
                    { "area", null }
                }
            };

            parentNode.ChildNodes.Add(manageState);

            var pluginNode = rootNode.ChildNodes.FirstOrDefault(x => x.SystemName == "ManagerWarehouse");

            if (pluginNode != null)
            {
                pluginNode.ChildNodes.Add(parentNode);
            }
            else
            {
                rootNode.ChildNodes.Add(parentNode);
            }

            //}
        }
Пример #29
0
        /// <summary>
        /// Inserts a permission
        /// </summary>
        /// <param name="permission">Permission</param>
        public virtual void InsertPermissionRecord(PermissionRecord permission)
        {
            if (permission == null)
            {
                throw new ArgumentNullException("permission");
            }
            using (var context = SCMSEntities.Define())
            {
                context.PermissionRecords.Add(permission);
                context.SaveChanges();
            }

            ClearCache();
        }
Пример #30
0
        /// <summary>
        /// Updates an existing permission record
        /// </summary>
        /// <param name="permissionRecord">Permission record to be updated</param>
        public void UpdatePermissionRecord(PermissionRecord permissionRecord)
        {
            if (permissionRecord == null)
            {
                throw new ArgumentException("Permission record cannot be null.", nameof(permissionRecord));
            }

            if (!_permissionRepository.Any(permissionRecord.PermissionRecordId))
            {
                throw new ArgumentException($"No permission record exists for id = {permissionRecord.PermissionRecordId}", nameof(permissionRecord.PermissionRecordId));
            }

            _permissionRepository.Update(permissionRecord);
        }
Пример #31
0
        /// <summary>
        /// Authorize permission
        /// </summary>
        /// <param name="permission">Permission record</param>
        /// <param name="customer">Customer</param>
        /// <returns>true - authorized; otherwise, false</returns>
        public virtual async Task <bool> Authorize(PermissionRecord permission, Customer customer)
        {
            if (permission == null)
            {
                return(false);
            }

            if (customer == null)
            {
                return(false);
            }

            return(await Authorize(permission.SystemName, customer));
        }
Пример #32
0
        public void CreatePermission(PermissionRecord permmision)
        {
            try
            {
                AuditTrail trail = new AuditTrail();

                trail.TimeStamp = CurrentDate;
                trail.UserId = PersonalInformation.UserId;
                trail.UserIP = _UtilityService.RemoteIP;
                trail.AuditActionId = (int)Telehire.Core.Utility.SystemEnums.AuditActionEnum.Create_Permission;
                trail.Details = PersonalInformation.FullName + " created Permission: " + permmision.Name;
                //trail.AirlineId = PersonalInformation.AirlineId;
                _AuditTrailRep.SaveOrUpdate(trail);
            }
            catch
            {

            }
        }
Пример #33
0
        /// <summary>
        /// Authorize permission
        /// </summary>
        /// <param name="permission">Permission record</param>
        /// <param name="account">Account</param>
        /// <returns>true - authorized; otherwise, false</returns>
        public virtual bool Authorize(PermissionRecord permission, Account account)
        {
            if (permission == null)
                return false;

            if (account == null)
                return false;

            //old implementation of Authorize method
            //var accountRoles = account.AccountRoles.Where(cr => cr.Active);
            //foreach (var role in accountRoles)
            //    foreach (var permission1 in role.PermissionRecords)
            //        if (permission1.SystemName.Equals(permission.SystemName, StringComparison.InvariantCultureIgnoreCase))
            //            return true;

            //return false;

            return Authorize(permission.SystemName, account);
        }
Пример #34
0
 /// <summary>
 /// Authorize permission
 /// </summary>
 /// <param name="permission">Permission record</param>
 /// <returns>true - authorized; otherwise, false</returns>
 public virtual bool Authorize(PermissionRecord permission)
 {
     return Authorize(permission, _currentActivity.CurrentAccount);
 }
Пример #35
0
        private static string SerializePermission(PermissionRecord permission)
        {
            var xmlString = new StringBuilder();

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

            xmlString.AppendFormat("<name>{0}</name>", permission.Name);
            xmlString.AppendFormat("<systemName>{0}</systemName>", permission.SystemName);
            xmlString.AppendFormat("<category>{0}</category>", permission.Category);

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

            return xmlString.ToString();
        }
Пример #36
0
        /// <summary>
        /// Updates the permission
        /// </summary>
        /// <param name="permission">Permission</param>
        public virtual void UpdatePermissionRecord(PermissionRecord permission)
        {
            if (permission == null)
                throw new ArgumentNullException("permission");

            _permissionRecordRepository.Update(permission);

            _cacheManager.RemoveByPattern(PERMISSIONS_PATTERN_KEY);
        }
Пример #37
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 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);
                }
            }
        }
Пример #38
0
 /// <summary>
 /// Authorize permission
 /// </summary>
 /// <param name="permission">Permission record</param>
 /// <returns>true - authorized; otherwise, false</returns>
 public virtual bool Authorize(PermissionRecord permission)
 {
     return Authorize(permission, _workContext.CurrentCustomer);
 }
Пример #39
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);

                    //save localization
                    permission1.SaveLocalizedPermissionName(_localizationService, _languageService);
                }
            }
        }
Пример #40
0
 public bool Authorize(PermissionRecord permission)
 {
     return Authorize(permission, _workContext.CurrentUserPersonalInformation);
 }