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 HtmlBuilder ImageLibItem( this HtmlBuilder hb, SiteSettings ss, DataRow dataRow) { var guid = dataRow.String("Guid"); var href = Locations.ShowFile(guid); return(hb.Div( attributes: new HtmlAttributes() .Class("item") .DataId(guid), action: () => hb .Div( css: "title", action: () => hb .A( href: Locations.ItemEdit(dataRow.Long("Id")), action: () => hb .Text(text: dataRow.String("ItemTitle")))) .Div( css: "image", action: () => hb .A( href: href, action: () => hb .Img(src: href))) .Button( controlCss: "button-icon delete-image", onClick: $"$p.deleteImage($(this));", dataId: guid, icon: "ui-icon-trash", action: Locations.DeleteImage(guid), method: "delete", confirm: "ConfirmDelete", _using: ss.CanUpdate()))); }
public static Error.Types OnSetSiteSettings(SiteSettings ss, out string data) { data = null; if (!ss.CanUpdate()) { 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); }
/// <summary> /// Fixed: /// </summary> public static Error.Types OnDeletingImage(SiteSettings ss, BinaryModel binaryModel) { if (!ss.CanUpdate()) { return(Error.Types.HasNotPermission); } if (binaryModel.AccessStatus != Databases.AccessStatuses.Selected) { return(Error.Types.NotFound); } return(Error.Types.None); }
private static Permissions.ColumnPermissionTypes ColumnPermissionType( SiteSettings ss, Permissions.ColumnPermissionTypes columnPermissionType, bool preview) { return (!Sessions.LoggedIn() || preview || ss.CanUpdate() || columnPermissionType != Permissions.ColumnPermissionTypes.Update ? columnPermissionType : Permissions.ColumnPermissionTypes.Read); }
public static Error.Types OnUpdating(SiteSettings ss, GroupModel groupModel) { if (!ss.CanUpdate()) { return(Error.Types.HasNotPermission); } ss.SetColumnAccessControls(groupModel.Mine()); foreach (var controlId in Forms.Keys()) { switch (controlId) { case "Groups_TenantId": if (groupModel.TenantId_Updated && !ss.GetColumn("TenantId").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Groups_GroupName": if (groupModel.GroupName_Updated && !ss.GetColumn("GroupName").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Groups_Body": if (groupModel.Body_Updated && !ss.GetColumn("Body").CanUpdate) { 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 OnUpdating(SiteSettings ss, DeptModel deptModel) { if (!ss.CanUpdate()) { return(Error.Types.HasNotPermission); } ss.SetColumnAccessControls(deptModel.Mine()); foreach (var controlId in Forms.Keys()) { switch (controlId) { case "Depts_DeptCode": if (deptModel.DeptCode_Updated && !ss.GetColumn("DeptCode").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Depts_DeptName": if (deptModel.DeptName_Updated && !ss.GetColumn("DeptName").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Depts_Body": if (deptModel.Body_Updated && !ss.GetColumn("Body").CanUpdate) { 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 OnUpdating(SiteSettings ss, DeptModel deptModel) { if (!ss.CanUpdate()) { return(Error.Types.HasNotPermission); } ss.SetColumnAccessControls(deptModel.Mine()); foreach (var column in ss.Columns .Where(o => !o.CanUpdate) .Where(o => !ss.FormulaTarget(o.ColumnName))) { switch (column.ColumnName) { case "DeptCode": if (deptModel.DeptCode_Updated()) { return(Error.Types.HasNotPermission); } break; case "DeptName": if (deptModel.DeptName_Updated()) { return(Error.Types.HasNotPermission); } break; case "Body": if (deptModel.Body_Updated()) { return(Error.Types.HasNotPermission); } break; case "Comments": if (!ss.GetColumn("Comments").CanUpdate) { return(Error.Types.HasNotPermission); } break; } } return(Error.Types.None); }
public static HtmlBuilder Notes( this HtmlBuilder hb, SiteSettings ss, Versions.VerTypes verType) { var notes = new Dictionary <string, string>(); if (!ss.CanUpdate()) { notes.Add("readonly", Displays.CanNotUpdate()); } if (verType == Versions.VerTypes.History) { notes.Add("history", Displays.ReadOnlyBecausePreviousVer()); } if (notes.Any()) { hb.Div(id: "Notes", action: () => notes.ForEach(part => hb .P(css: part.Key, action: () => hb .Text(text: part.Value)))); } return(hb); }
public static Error.Types OnUpdating(SiteSettings ss, UserModel userModel) { if (Forms.Exists("Users_TenantManager") && userModel.Self()) { return(Error.Types.PermissionNotSelfChange); } if (!ss.CanUpdate()) { return(Error.Types.HasNotPermission); } ss.SetColumnAccessControls(userModel.Mine()); foreach (var controlId in Forms.Keys()) { switch (controlId) { case "Users_LoginId": if (userModel.LoginId_Updated && !ss.GetColumn("LoginId").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_GlobalId": if (userModel.GlobalId_Updated && !ss.GetColumn("GlobalId").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_Name": if (userModel.Name_Updated && !ss.GetColumn("Name").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_UserCode": if (userModel.UserCode_Updated && !ss.GetColumn("UserCode").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_Password": if (userModel.Password_Updated && !ss.GetColumn("Password").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_LastName": if (userModel.LastName_Updated && !ss.GetColumn("LastName").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_FirstName": if (userModel.FirstName_Updated && !ss.GetColumn("FirstName").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_Birthday": if (userModel.Birthday_Updated && !ss.GetColumn("Birthday").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_Gender": if (userModel.Gender_Updated && !ss.GetColumn("Gender").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_Language": if (userModel.Language_Updated && !ss.GetColumn("Language").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_TimeZone": if (userModel.TimeZone_Updated && !ss.GetColumn("TimeZone").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_DeptId": if (userModel.DeptId_Updated && !ss.GetColumn("DeptId").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_FirstAndLastNameOrder": if (userModel.FirstAndLastNameOrder_Updated && !ss.GetColumn("FirstAndLastNameOrder").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_Body": if (userModel.Body_Updated && !ss.GetColumn("Body").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_LastLoginTime": if (userModel.LastLoginTime_Updated && !ss.GetColumn("LastLoginTime").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_PasswordExpirationTime": if (userModel.PasswordExpirationTime_Updated && !ss.GetColumn("PasswordExpirationTime").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_PasswordChangeTime": if (userModel.PasswordChangeTime_Updated && !ss.GetColumn("PasswordChangeTime").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_NumberOfLogins": if (userModel.NumberOfLogins_Updated && !ss.GetColumn("NumberOfLogins").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_NumberOfDenial": if (userModel.NumberOfDenial_Updated && !ss.GetColumn("NumberOfDenial").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_TenantManager": if (userModel.TenantManager_Updated && !ss.GetColumn("TenantManager").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_Disabled": if (userModel.Disabled_Updated && !ss.GetColumn("Disabled").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Users_ApiKey": if (userModel.ApiKey_Updated && !ss.GetColumn("ApiKey").CanUpdate) { return(Error.Types.HasNotPermission); } break; case "Comments": if (!ss.GetColumn("Comments").CanUpdate) { return(Error.Types.HasNotPermission); } break; } } return(Error.Types.None); }
public static bool CanMove(SiteSettings source, SiteSettings destination) { return(source.CanUpdate() && destination.CanUpdate()); }
public static HtmlBuilder MainCommands( this HtmlBuilder hb, SiteSettings ss, long siteId, Versions.VerTypes verType, long referenceId = 0, bool backButton = true, bool updateButton = false, bool copyButton = false, bool moveButton = false, bool mailButton = false, bool deleteButton = false, Action extensions = null) { return(hb.Div(id: "MainCommandsContainer", action: () => hb .Div(id: "MainCommands", action: () => { if (backButton) { hb.Button( controlId: "GoBack", text: Displays.GoBack(), controlCss: "button-icon", accessKey: "q", onClick: "$p.back();", icon: "ui-icon-circle-arrow-w"); } if (Routes.Action() == "new") { hb.Button( text: Displays.Create(), controlCss: "button-icon validate", accessKey: "s", onClick: "$p.send($(this));", icon: "ui-icon-disk", action: "Create", method: "post"); } else if (ss.CanRead() && verType == Versions.VerTypes.Latest) { hb .Button( text: Displays.Update(), controlCss: "button-icon validate", accessKey: "s", onClick: "$p.send($(this));", icon: "ui-icon-disk", action: "Update", method: "put", _using: updateButton && ss.CanUpdate()) .Button( text: Displays.Copy(), controlCss: "button-icon open-dialog", accessKey: "c", onClick: "$p.openDialog($(this));", icon: "ui-icon-copy", selector: "#CopyDialog", _using: copyButton && ss.CanCreate()) .Button( text: Displays.Move(), controlCss: "button-icon open-dialog", accessKey: "o", onClick: "$p.moveTargets($(this));", icon: "ui-icon-transferthick-e-w", selector: "#MoveDialog", action: "MoveTargets", method: "get", _using: moveButton && ss.CanUpdate()) .Button( controlId: "EditOutgoingMail", text: Displays.Mail(), controlCss: "button-icon", onClick: "$p.openOutgoingMailDialog($(this));", icon: "ui-icon-mail-closed", action: "Edit", method: "put", accessKey: "m", _using: mailButton && ss.CanSendMail()) .Button( text: Displays.Delete(), controlCss: "button-icon", accessKey: "r", onClick: "$p.send($(this));", icon: "ui-icon-trash", action: "Delete", method: "delete", confirm: "ConfirmDelete", _using: deleteButton && ss.CanDelete() && !ss.IsSite()) .Button( text: Displays.DeleteSite(), controlCss: "button-icon", accessKey: "r", onClick: "$p.openDeleteSiteDialog($(this));", icon: "ui-icon-trash", _using: deleteButton && ss.CanDelete() && ss.IsSite()); if (Routes.Controller() == "items" && ss.ReferenceType != "Sites") { switch (Routes.Action()) { case "index": hb .Button( text: Displays.BulkMove(), controlCss: "button-icon open-dialog", accessKey: "o", onClick: "$p.moveTargets($(this));", icon: "ui-icon-transferthick-e-w", selector: "#MoveDialog", action: "MoveTargets", method: "get", _using: ss.CanUpdate()) .Button( text: Displays.BulkDelete(), controlCss: "button-icon", accessKey: "r", onClick: "$p.send($(this));", icon: "ui-icon-trash", action: "BulkDelete", method: "delete", confirm: "ConfirmDelete", _using: ss.CanDelete()) .Button( controlId: "EditImportSettings", text: Displays.Import(), controlCss: "button-icon", accessKey: "w", onClick: "$p.openImportSettingsDialog($(this));", icon: "ui-icon-arrowreturnthick-1-e", selector: "#ImportSettingsDialog", _using: ss.CanImport()) .Button( text: Displays.Export(), controlCss: "button-icon", accessKey: "x", onClick: "$p.openExportSelectorDialog($(this));", icon: "ui-icon-arrowreturnthick-1-w", action: "OpenExportSelectorDialog", method: "post", _using: ss.CanExport()); break; case "crosstab": hb.Button( text: Displays.Export(), controlCss: "button-icon", accessKey: "x", onClick: "$p.exportCrosstab();", icon: "ui-icon-arrowreturnthick-1-w", _using: ss.CanExport()); break; } } } extensions?.Invoke(); }))); }