public static HtmlBuilder HistoryCommands(this HtmlBuilder hb, SiteSettings ss) { return(hb.Div( css: "command-left", action: () => hb .Button( text: Displays.Restore(), controlCss: "button-icon", onClick: "$p.send($(this));", icon: "ui-icon-arrowreturnthick-1-n", action: "RestoreFromHistory", method: "post", confirm: "ConfirmRestore", _using: Parameters.History.Restore && ss.CanUpdate()) .Button( text: Displays.DeleteHistory(), controlCss: "button-icon", onClick: "$p.send($(this));", icon: "ui-icon-closethick", action: "DeleteHistory", method: "delete", confirm: "ConfirmPhysicalDelete", _using: Parameters.History.PhysicalDelete && ss.CanManageSite()), _using: (Parameters.History.Restore || Parameters.History.PhysicalDelete) && ss.Context.Controller == "items" && (ss.CanUpdate() || ss.CanManageSite()))); }
public static bool CanDelete(this SiteSettings ss, bool site = false) { switch (Routes.Controller()) { case "depts": return(CanManageTenant()); case "groups": return(CanEditGroup()); case "users": return(CanManageTenant() && Sessions.UserId() != Routes.Id()); default: if (ss.ReferenceType == "Sites") { return(ss.CanManageSite()); } else { return(ss.Can(Types.Delete, site)); } } }
/// <summary> /// Fixed: /// </summary> public static string Restore(SiteSettings ss) { if (ss.CanManageSite()) { var selector = new GridSelector(); var count = 0; if (selector.All) { count = Restore(ss, selector.Selected, negative: true); } else { if (selector.Selected.Any()) { count = Restore(ss, selector.Selected); } else { return(Messages.ResponseSelectTargets().ToJson()); } } Summaries.Synchronize(ss); return(""); } else { return(Messages.ResponseHasNotPermission().ToJson()); } }
public static bool CanSendMail(this SiteSettings ss, bool site = false) { if (!Contract.Mail()) { return(false); } switch (Routes.Controller()) { case "depts": return(CanManageTenant()); case "groups": return(CanEditGroup()); case "users": return(CanManageTenant() || Sessions.UserId() == Routes.Id()); default: if (ss.ReferenceType == "Sites") { return(ss.CanManageSite()); } else { return(ss.Can(Types.SendMail, site)); } } }
private static bool CanManageTrashBox(SiteSettings ss) { return((Parameters.Deleted.Restore || Parameters.Deleted.PhysicalDelete) && ss.Context.Controller == "items" && ss.CanManageSite() && (ss.Context.Id != 0 || ss.Context.HasPrivilege)); }
public static Error.Types OnSetSiteSettings(SiteSettings ss, out string data) { data = null; if (!ss.CanManageSite()) { return(Error.Types.HasNotPermission); } foreach (var formData in Forms.All()) { switch (formData.Key) { case "Format": try { 0.ToString(formData.Value, Sessions.CultureInfo()); } catch (System.Exception) { data = formData.Value; return(Error.Types.BadFormat); } break; } } return(Error.Types.None); }
public static Error.Types OnSorting(SiteSettings ss) { if (ss.SiteId != 0 && !ss.CanManageSite()) { return(Error.Types.HasNotPermission); } return(Error.Types.None); }
public static Error.Types OnUpdating(SiteSettings ss) { if (!ss.CanManageSite()) { return(Error.Types.HasNotPermission); } return(Error.Types.None); }
private static HtmlBuilder NavigationMenu( this HtmlBuilder hb, SiteSettings ss, long siteId, string referenceType, bool useNavigationMenu) { return(hb.Ul( id: "NavigationMenu", action: () => hb .Li( action: () => hb .Div(action: () => hb .A( href: NewHref(ss), attributes: SiteIndex(ss) ? new HtmlAttributes() .OnClick("$p.openTemplateDialog($(this));") .DataAction("OpenTemplateDialog") .DataMethod("post") : null, action: () => hb .Span(css: "ui-icon ui-icon-plus") .Text(text: Displays.New()))), _using: ss.ReferenceType == "Sites" && Routes.Action() == "index" ? ss.CanManageSite() : ss.CanCreate() && ss.ReferenceType != "Wikis") .Li( css: "sub-menu", action: () => hb .Div( attributes: new HtmlAttributes().DataId("ViewModeMenu"), action: () => hb .Span(css: "ui-icon ui-icon-triangle-1-e") .Text(text: Displays.View())) .ViewModeMenu(ss: ss), _using: Def.ViewModeDefinitionCollection .Any(o => o.ReferenceType == referenceType)) .Li( css: "sub-menu", action: () => hb .Div( attributes: new HtmlAttributes().DataId("SettingsMenu"), action: () => hb .Span(css: "ui-icon ui-icon-gear") .Text(text: Displays.Setting())) .SettingsMenu(siteId: siteId, ss: ss)) .Li( css: "sub-menu", action: () => hb .Div( attributes: new HtmlAttributes().DataId("AccountMenu"), action: () => hb .Span(css: "ui-icon ui-icon-person") .Text(text: SiteInfo.UserName(( Sessions.UserId())))) .AccountMenu()))); }
public static Error.Types OnDeleting(SiteSettings ss, SiteModel siteModel) { if (ss.Title != Forms.Data("DeleteSiteTitle") || !Authenticate()) { return(Error.Types.IncorrectSiteDeleting); } return(ss.CanManageSite() ? Error.Types.None : Error.Types.HasNotPermission); }
public static Error.Types OnEditing(SiteSettings ss, SiteModel siteModel) { return (ss.CanManageSite() && siteModel.AccessStatus != Databases.AccessStatuses.NotFound ? Error.Types.None : siteModel.MethodType == BaseModel.MethodTypes.New ? Error.Types.HasNotPermission : Error.Types.NotFound); }
public static Error.Types OnDeleting(SiteSettings ss, SiteModel siteModel) { if (ss.Title != Forms.Data("DeleteSiteTitle") || !Authentications.Try( Forms.Data("Users_LoginId"), Forms.Data("Users_Password").Sha512Cng())) { return(Error.Types.IncorrectSiteDeleting); } return(ss.CanManageSite() ? Error.Types.None : Error.Types.HasNotPermission); }
public static Error.Types OnCreating(SiteSettings ss, SiteModel siteModel) { if (!ss.CanManageSite()) { return(Error.Types.HasNotPermission); } ss.SetColumnAccessControls(siteModel.Mine()); foreach (var controlId in Forms.Keys()) { switch (controlId) { case "Sites_Title": if (!ss.GetColumn("Title").CanCreate) { return(Error.Types.HasNotPermission); } break; case "Sites_Body": if (!ss.GetColumn("Body").CanCreate) { return(Error.Types.HasNotPermission); } break; case "Sites_ReferenceType": if (!ss.GetColumn("ReferenceType").CanCreate) { return(Error.Types.HasNotPermission); } break; case "Sites_InheritPermission": if (!ss.GetColumn("InheritPermission").CanCreate) { return(Error.Types.HasNotPermission); } break; case "Comments": if (!ss.GetColumn("Comments").CanCreate) { return(Error.Types.HasNotPermission); } break; } } return(Error.Types.None); }
/// <summary> /// Fixed: /// </summary> public static Error.Types OnUploadingSiteImage(SiteSettings ss, byte[] file) { if (!ss.CanManageSite()) { return(Error.Types.HasNotPermission); } if (file == null) { return(Error.Types.SelectFile); } try { System.Drawing.Image.FromStream(new System.IO.MemoryStream(file)); } catch (System.Exception) { return(Error.Types.IncorrectFileFormat); } return(Error.Types.None); }
public static Error.Types OnMoving( long currentId, long destinationId, SiteSettings current, SiteSettings source, SiteSettings destination) { if (currentId != 0 && !current.CanManageSite()) { return(Error.Types.HasNotPermission); } if (!source.CanManageSite()) { return(Error.Types.HasNotPermission); } if (destinationId != 0 && !destination.CanManageSite()) { return(Error.Types.HasNotPermission); } return(Error.Types.None); }
public static string DeleteHistory(SiteSettings ss, long wikiId) { if (!Parameters.History.PhysicalDelete) { return(Error.Types.InvalidRequest.MessageJson()); } if (ss.CanManageSite()) { var selector = new GridSelector(); var selected = selector .Selected .Select(o => o.ToInt()) .ToList(); var count = 0; if (selector.All) { count = DeleteHistory(ss, wikiId, selected, negative: true); } else { if (selector.Selected.Any()) { count = DeleteHistory(ss, wikiId, selected); } else { return(Messages.ResponseSelectTargets().ToJson()); } } return(Histories( ss: ss, wikiId: wikiId, message: Messages.HistoryDeleted(count.ToString()))); } else { return(Messages.ResponseHasNotPermission().ToJson()); } }
private static HtmlBuilder SettingsMenu( this HtmlBuilder hb, SiteSettings ss, long siteId) { return(hb.Ul(id: "SettingsMenu", css: "menu", action: () => hb .Li( action: () => hb .A( href: Locations.ItemEdit(siteId), action: () => hb .Span(css: "ui-icon ui-icon-gear") .Text(text: Displays.SiteSettings())), _using: siteId != 0 && ss.CanManageSite(site: true)) .Li( action: () => hb .A( href: Locations.Index("Depts"), action: () => hb .Span(css: "ui-icon ui-icon-gear") .Text(text: Displays.DeptAdmin())), _using: Permissions.CanManageTenant()) .Li( action: () => hb .A( href: Locations.Index("Groups"), action: () => hb .Span(css: "ui-icon ui-icon-gear") .Text(text: Displays.GroupAdmin()))) .Li( action: () => hb .A( href: Locations.Index("Users"), action: () => hb .Span(css: "ui-icon ui-icon-gear") .Text(text: Displays.UserAdmin())), _using: Permissions.CanManageTenant()))); }
private static HtmlBuilder NavigationMenu( this HtmlBuilder hb, SiteSettings ss, long siteId, string referenceType, bool useNavigationMenu) { var canManageGroups = Sessions.UserSettings().DisableGroupAdmin != true; var canManageSite = siteId != 0 && ss.CanManageSite(site: true); var canManageDepts = Permissions.CanManageTenant(); var canManageUsers = Permissions.CanManageTenant(); return(hb.Ul( id: "NavigationMenu", action: () => hb .Li( action: () => hb .Div(action: () => hb .A( href: NewHref(ss), attributes: SiteIndex(ss) ? new HtmlAttributes() .OnClick("$p.templates($(this));") .DataAction("Templates") .DataMethod("post") : null, action: () => hb .Span(css: "ui-icon ui-icon-plus") .Text(text: Displays.New()))), _using: ss.ReferenceType == "Sites" && Routes.Action() == "index" ? ss.CanManageSite() : ss.CanCreate() && ss.ReferenceType != "Wikis") .Li( css: "sub-menu", action: () => hb .Div( attributes: new HtmlAttributes().DataId("ViewModeMenu"), action: () => hb .Span(css: "ui-icon ui-icon-triangle-1-e") .Text(text: Displays.View())) .ViewModeMenu(ss: ss), _using: Def.ViewModeDefinitionCollection .Any(o => o.ReferenceType == referenceType)) .Li( css: "sub-menu", action: () => hb .Div( attributes: new HtmlAttributes().DataId("SettingsMenu"), action: () => hb .Span(css: "ui-icon ui-icon-gear") .Text(text: Displays.Manage())) .SettingsMenu( ss: ss, siteId: siteId, canManageSite: canManageSite, canManageDepts: canManageDepts, canManageGroups: canManageGroups, canManageUsers: canManageUsers), _using: canManageSite || canManageDepts || canManageGroups || canManageUsers) .Li( css: "sub-menu", action: () => hb .Div( attributes: new HtmlAttributes().DataId("AccountMenu"), action: () => hb .Span(css: "ui-icon ui-icon-person") .Text(text: SiteInfo.UserName(( Sessions.UserId())))) .AccountMenu()))); }
public static Error.Types OnUpdating(SiteSettings ss, SiteModel siteModel) { if (!ss.CanManageSite()) { return(Error.Types.HasNotPermission); } ss.SetColumnAccessControls(siteModel.Mine()); foreach (var controlId in Forms.Keys()) { switch (controlId) { case "Sites_Title": if (siteModel.Title_Updated() && !ss.GetColumn("Title").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Sites_Body": if (siteModel.Body_Updated() && !ss.GetColumn("Body").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Sites_ReferenceType": if (siteModel.ReferenceType_Updated() && !ss.GetColumn("ReferenceType").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Sites_InheritPermission": if (siteModel.InheritPermission_Updated() && !ss.GetColumn("InheritPermission").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "InheritPermission": var type = InheritPermission(ss); if (type != Error.Types.None) { return(type); } break; case "CurrentPermissionsAll": if (!ss.CanManagePermission()) { return(Error.Types.HasNotPermission); } if (!new PermissionCollection( ss.SiteId, Forms.List("CurrentPermissionsAll")).InTenant()) { return(Error.Types.InvalidRequest); } break; case "SearchPermissionElements": case "OpenPermissionsDialog": case "AddPermissions": case "DeletePermissions": if (!ss.CanManagePermission()) { return(Error.Types.HasNotPermission); } break; case "Comments": if (!ss.GetColumn("Comments").CanUpdate) { return(Error.Types.HasNotPermission); } break; } } return(Error.Types.None); }
public static Error.Types OnReading(SiteSettings ss) { return(ss.CanManageSite() ? Error.Types.None : Error.Types.HasNotPermission); }