/// <summary> /// Delete a customer role /// </summary> /// <param name="customerRole">Customer role</param> public virtual void DeleteCustomerRole(CustomerRole customerRole) { if (customerRole == null) throw new ArgumentNullException("customerRole"); if (customerRole.IsSystemRole) throw new NopException("System role could not be deleted"); _customerRoleRepository.Delete(customerRole); _cacheManager.RemoveByPattern(CUSTOMERROLES_PATTERN_KEY); //event notification _eventPublisher.EntityDeleted(customerRole); }
/// <summary> /// Updates the customer role /// </summary> /// <param name="customerRole">Customer role</param> public virtual void UpdateCustomerRole(CustomerRole customerRole) { if (customerRole == null) throw new ArgumentNullException("customerRole"); _customerRoleRepository.Update(customerRole); _cacheManager.RemoveByPattern(CUSTOMERROLES_PATTERN_KEY); //event notification _eventPublisher.EntityUpdated(customerRole); }
/// <summary> /// Authorize permission /// </summary> /// <param name="permissionRecordSystemName">Permission record system name</param> /// <param name="customerRole">Customer role</param> /// <returns>true - authorized; otherwise, false</returns> protected virtual bool Authorize(string permissionRecordSystemName, CustomerRole customerRole) { if (String.IsNullOrEmpty(permissionRecordSystemName)) return false; string key = string.Format(PERMISSIONS_ALLOWED_KEY, customerRole.Id, permissionRecordSystemName); return _cacheManager.Get(key, () => { foreach (var permission1 in customerRole.PermissionRecords) if (permission1.SystemName.Equals(permissionRecordSystemName, StringComparison.InvariantCultureIgnoreCase)) return true; return false; }); }
protected virtual void InstallCustomersAndUsers(string defaultUserEmail, string defaultUserPassword) { var crAdministrators = new CustomerRole { Name = "Administrators", Active = true, IsSystemRole = true, SystemName = SystemCustomerRoleNames.Administrators, }; var crForumModerators = new CustomerRole { Name = "Forum Moderators", Active = true, IsSystemRole = true, SystemName = SystemCustomerRoleNames.ForumModerators, }; var crRegistered = new CustomerRole { Name = "Registered", Active = true, IsSystemRole = true, SystemName = SystemCustomerRoleNames.Registered, }; var crGuests = new CustomerRole { Name = "Guests", Active = true, IsSystemRole = true, SystemName = SystemCustomerRoleNames.Guests, }; var crVendors = new CustomerRole { Name = "Vendors", Active = true, IsSystemRole = true, SystemName = SystemCustomerRoleNames.Vendors, }; var customerRoles = new List<CustomerRole> { crAdministrators, crForumModerators, crRegistered, crGuests, crVendors }; _customerRoleRepository.Insert(customerRoles); //admin user var adminUser = new Customer { CustomerGuid = Guid.NewGuid(), Email = defaultUserEmail, Username = defaultUserEmail, Password = defaultUserPassword, PasswordFormat = PasswordFormat.Clear, PasswordSalt = "", Active = true, CreatedOnUtc = DateTime.UtcNow, LastActivityDateUtc = DateTime.UtcNow, }; var defaultAdminUserAddress = new Address { Name = "Muharremm haliloðlu", Address1 = "beykoz", Address2 = "" }; adminUser.Addresses.Add(defaultAdminUserAddress); adminUser.CustomerRoles.Add(crAdministrators); adminUser.CustomerRoles.Add(crForumModerators); adminUser.CustomerRoles.Add(crRegistered); _customerRepository.Insert(adminUser); //set default customer name //_genericAttributeService.SaveAttribute(adminUser, SystemCustomerAttributeNames.FirstName, "John"); //_genericAttributeService.SaveAttribute(adminUser, SystemCustomerAttributeNames.LastName, "Smith"); //search engine (crawler) built-in user var searchEngineUser = new Customer { Email = "builtin@search_engine_record.com", CustomerGuid = Guid.NewGuid(), PasswordFormat = PasswordFormat.Clear, Active = true, IsSystemAccount = true, SystemName = SystemCustomerNames.SearchEngine, CreatedOnUtc = DateTime.UtcNow, LastActivityDateUtc = DateTime.UtcNow, }; searchEngineUser.CustomerRoles.Add(crGuests); _customerRepository.Insert(searchEngineUser); //built-in user for background tasks var backgroundTaskUser = new Customer { Email = "*****@*****.**", CustomerGuid = Guid.NewGuid(), PasswordFormat = PasswordFormat.Clear, Active = true, IsSystemAccount = true, SystemName = SystemCustomerNames.BackgroundTask, CreatedOnUtc = DateTime.UtcNow, LastActivityDateUtc = DateTime.UtcNow, }; backgroundTaskUser.CustomerRoles.Add(crGuests); _customerRepository.Insert(backgroundTaskUser); }
/// <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); } } }