示例#1
0
        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);
        }
示例#2
0
 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"));
 }