protected override void Importing(ContentTypePermissionSettingsPart part, ImportContentContext context) { var root = context.Data.Element(part.PartDefinition.Name); if (root == null) { return; } var permissions = root.Elements("Permission"); var settings = _contentTypePermissionSettingsService.ReadSettings(); foreach (var perm in permissions) { var permRecord = new ContentTypePermissionRecord { ContentType = perm.Attribute("ContentType") != null?perm.Attribute("ContentType").Value : "", PostPermission = perm.Attribute("PostPermission") != null?perm.Attribute("PostPermission").Value : "", GetPermission = perm.Attribute("GetPermission") != null?perm.Attribute("GetPermission").Value : "", DeletePermission = perm.Attribute("DeletePermission") != null?perm.Attribute("DeletePermission").Value : "", PublishPermission = perm.Attribute("PublishPermission") != null?perm.Attribute("PublishPermission").Value : "" }; // insert record only if not already inserted before in the system var check = settings.ListContPermission.Count(x => x.ContentType == permRecord.ContentType && x.PostPermission == permRecord.PostPermission && x.GetPermission == permRecord.GetPermission && x.PublishPermission == permRecord.PublishPermission && x.DeletePermission == permRecord.DeletePermission); if (check == 0) { settings.ListContPermission.Add(permRecord); } } _contentTypePermissionSettingsService.WriteSettings(settings); }
public ActionResult Settings(SettingsModel model) { if (!_orchardServices.Authorizer.Authorize(StandardPermissions.SiteOwner, T("Yout have to be an Administrator to edit ContentTypePermission settings!"))) { return(new HttpUnauthorizedResult()); } if (!ModelState.IsValid) { _orchardServices.Notifier.Error(T("Settings update failed: {0}", T("check your input!"))); return(View(model)); } try { _contentTypePermissionSettingsService.WriteSettings(model); _orchardServices.Notifier.Information(T("ContentType Permission settings updated.")); // I read again my model in order to its ids model = _contentTypePermissionSettingsService.ReadSettings(); } catch (Exception exception) { _orchardServices.Notifier.Error(T("Settings update failed: {0}", exception.Message)); } return(RedirectToAction("Settings")); }