public static HtmlBuilder Breadcrumb( this HtmlBuilder hb, SiteSettings ss, long siteId, bool _using) { if (!Sessions.LoggedIn() || !_using) { return(hb); } var controller = Url.RouteData("controller").ToLower(); switch (controller) { case "admins": return(Breadcrumb(hb, controller)); case "depts": return(Breadcrumb(hb, controller, Displays.Depts())); case "groups": return(Permissions.CanManageTenant() ? Breadcrumb(hb, controller, Displays.Groups()) : Breadcrumb(hb)); case "users": return(Permissions.CanManageTenant() ? Breadcrumb(hb, controller, Displays.Users()) : Breadcrumb(hb)); case "items": case "permissions": return(hb.Breadcrumb(siteId)); default: return(hb); } }
public static ErrorData OnRestoring(Context context, SiteSettings ss, bool api = false) { if (api) { if ((!Parameters.Api.Enabled || context.ContractSettings.Api == false || context.UserSettings?.AllowApi(context: context) == false)) { return(new ErrorData(type: Error.Types.InvalidRequest)); } if (context.InvalidJsonData) { return(new ErrorData(type: Error.Types.InvalidJsonData)); } } if (ss.LockedTable()) { return(new ErrorData( type: Error.Types.LockedTable, data: new string[] { ss.LockedTableUser.Name, ss.LockedTableTime.DisplayValue.ToString(context.CultureInfo()) })); } return(Permissions.CanManageTenant(context: context) ? new ErrorData(type: Error.Types.None) : new ErrorData(type: Error.Types.HasNotPermission)); }
/// <summary> /// Fixed: /// </summary> public static Error.Types OnAddingMailAddress( SiteSettings ss, UserModel userModel, string mailAddress, out string data) { var error = MailAddressValidators.BadMailAddress(mailAddress, out data); if (!DefinitionAccessor.Parameters.Service.ShowProfiles) { return(Error.Types.InvalidRequest); } if (error.Has()) { return(error); } if (mailAddress.Trim() == string.Empty) { return(Error.Types.InputMailAddress); } if (!Permissions.CanManageTenant() && !userModel.Self()) { return(Error.Types.HasNotPermission); } return(Error.Types.None); }
/// <summary> /// Fixed: /// </summary> public static ErrorData OnAddingMailAddress( Context context, UserModel userModel, string mailAddress, out string data) { var errorData = MailAddressValidators.BadMailAddress( context: context, addresses: mailAddress, data: out data); if (!Parameters.Service.ShowProfiles) { return(new ErrorData(type: Error.Types.InvalidRequest)); } if (errorData.Type.Has()) { return(errorData); } if (mailAddress.Trim() == string.Empty) { return(new ErrorData(type: Error.Types.InputMailAddress)); } if (!Permissions.CanManageTenant(context: context) && !userModel.Self(context: context)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } return(new ErrorData(type: Error.Types.None)); }
public static string Initialize(Context context) { if (Permissions.CanManageTenant(context: context)) { Initializer.SetParameters(); } return("[]"); }
/// <summary> /// Fixed: /// </summary> public static ErrorData OnEntry(Context context, SiteSettings ss) { return (context.UserSettings?.AllowGroupAdministration(context: context) == true || Permissions.CanManageTenant(context: context) ? new ErrorData(type: Error.Types.None) : new ErrorData(type: Error.Types.HasNotPermission)); }
/// <summary> /// Fixed: /// </summary> public static Error.Types OnEntry(SiteSettings ss) { return (Sessions.UserSettings().DisableGroupAdmin != true || Permissions.CanManageTenant() ? Error.Types.None : Error.Types.HasNotPermission); }
/// <summary> /// Fixed: /// </summary> public static Error.Types OnEntry(Context context, SiteSettings ss) { return (context.UserSettings?.DisableGroupAdmin != true || Permissions.CanManageTenant(context: context) ? Error.Types.None : Error.Types.HasNotPermission); }
public static string AdminsIndex(this HtmlBuilder hb, Context context) { if (!Permissions.CanManageTenant(context: context)) { return(HtmlTemplates.Error( context: context, errorType: Error.Types.HasNotPermission)); } var ss = new SiteSettings(); return(hb.Template( context: context, ss: ss, view: null, methodType: Pleasanter.Models.BaseModel.MethodTypes.NotSet, title: Displays.Admin(context: context), verType: Versions.VerTypes.Latest, useNavigationMenu: false, action: () => hb .Nav(css: "cf", action: () => hb .Ul(css: "nav-sites", action: () => hb .Li(css: "nav-site", action: () => hb .A( attributes: new HtmlAttributes() .Href(Locations.Index( context: context, controller: "Depts")), action: () => hb .Div(action: () => hb .Text(Displays.Depts(context: context))) .StackStyles())) .Li(css: "nav-site", action: () => hb .A( attributes: new HtmlAttributes() .Href(Locations.Index( context: context, controller: "Groups")), action: () => hb .Div(action: () => hb .Text(Displays.Groups(context: context))) .StackStyles())) .Li(css: "nav-site", action: () => hb .A( attributes: new HtmlAttributes() .Href(Locations.Index( context: context, controller: "Users")), action: () => hb .Div(action: () => hb .Text(Displays.Users(context: context))) .StackStyles())))) .MainCommands( context: context, ss: ss, siteId: 0, verType: Versions.VerTypes.Latest)) .ToString()); }
/// <summary> /// Fixed: /// </summary> public static Error.Types OnDeletingTenantImage(Context context, SiteSettings ss) { if (!Permissions.CanManageTenant(context) && context.UserSettings?.EnableManageTenant != true) { return(Error.Types.HasNotPermission); } return(Error.Types.None); }
public static Error.Types OnRestoring() { if (!DefinitionAccessor.Parameters.Service.ShowProfiles) { return(Error.Types.InvalidRequest); } return(Permissions.CanManageTenant() ? Error.Types.None : Error.Types.HasNotPermission); }
public static Error.Types OnRestoring(Context context, bool api = false) { if (api && (context.ContractSettings.Api == false || !Parameters.Api.Enabled)) { return(Error.Types.InvalidRequest); } return(Permissions.CanManageTenant(context: context) ? Error.Types.None : Error.Types.HasNotPermission); }
/// <summary> /// Fixed: /// </summary> public static ErrorData OnPasswordResetting(Context context) { if (!Parameters.Service.ShowProfiles) { return(new ErrorData(type: Error.Types.InvalidRequest)); } if (!Permissions.CanManageTenant(context: context)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } return(new ErrorData(type: Error.Types.None)); }
public static ErrorData OnRestoring(Context context, bool api = false) { if (api && (context.ContractSettings.Api == false || !Parameters.Api.Enabled)) { return(new ErrorData(type: Error.Types.InvalidRequest)); } if (!Parameters.Service.ShowProfiles) { return(new ErrorData(type: Error.Types.InvalidRequest)); } return(Permissions.CanManageTenant(context: context) ? new ErrorData(type: Error.Types.None) : new ErrorData(type: Error.Types.HasNotPermission)); }
public static ErrorData OnRestoring(Context context, SiteSettings ss, bool api = false) { if (api) { if ((context.ContractSettings.Api == false || !Parameters.Api.Enabled)) { return(new ErrorData(type: Error.Types.InvalidRequest)); } if (context.InvalidJsonData) { return(new ErrorData(type: Error.Types.InvalidJsonData)); } } return(Permissions.CanManageTenant(context: context) ? new ErrorData(type: Error.Types.None) : new ErrorData(type: Error.Types.HasNotPermission)); }
/// <summary> /// Fixed: /// </summary> private static GridData GetGridData(SiteSettings ss, View view, int offset = 0) { return(new GridData( ss: ss, view: view, where : Rds.GroupsWhere() .TenantId(Sessions.TenantId()) .GroupId_In(sub: Rds.SelectGroupMembers( distinct: true, column: Rds.GroupMembersColumn().GroupId(), where : Permissions.GroupMembersWhere()), _using: !Permissions.CanManageTenant()), offset: offset, pageSize: ss.GridPageSize.ToInt(), countRecord: true, aggregations: ss.Aggregations)); }
public static HtmlBuilder Breadcrumb( this HtmlBuilder hb, SiteSettings ss, long siteId, bool _using) { if (!Sessions.LoggedIn() || !_using) { return(hb); } var controller = Routes.Controller(); switch (controller) { case "admins": return(Breadcrumb(hb, controller)); case "depts": return(Breadcrumb(hb, controller, Displays.Depts())); case "groups": return(Permissions.CanManageTenant() ? Breadcrumb(hb, controller, Displays.Groups()) : Breadcrumb(hb)); case "users": switch (Routes.Action()) { case "editapi": return(hb.Breadcrumb(new Dictionary <string, string> { { Locations.Get("Users", "EditApi"), Displays.ApiSettings() } })); default: return(Permissions.CanManageTenant() ? Breadcrumb(hb, controller, Displays.Users()) : Breadcrumb(hb)); } case "items": case "permissions": return(hb.Breadcrumb(siteId)); default: return(hb); } }
/// <summary> /// Fixed: /// </summary> private static GroupCollection GroupCollection( SiteSettings ss, View view, int offset = 0) { return(new GroupCollection( ss: ss, column: GridSqlColumnCollection(ss), where : view.Where(ss: ss, where : Rds.GroupsWhere() .TenantId(Sessions.TenantId()) .GroupId_In( sub: Rds.SelectGroupMembers( distinct: true, column: Rds.GroupMembersColumn().GroupId(), where : Permissions.GroupMembersWhere()), _using: !Permissions.CanManageTenant())), orderBy: view.OrderBy(ss, Rds.GroupsOrderBy() .UpdatedTime(SqlOrderBy.Types.desc)), offset: offset, pageSize: ss.GridPageSize.ToInt(), countRecord: true, aggregations: ss.Aggregations)); }
/// <summary> /// Fixed: /// </summary> public static ErrorData OnEntry(Context context, SiteSettings ss, bool api = false) { if (api) { if ((!Parameters.Api.Enabled || context.ContractSettings.Api == false || context.UserSettings?.AllowApi(context: context) == false)) { return(new ErrorData(type: Error.Types.InvalidRequest)); } if (context.InvalidJsonData) { return(new ErrorData(type: Error.Types.InvalidJsonData)); } return(new ErrorData(type: Error.Types.None)); } return(context.UserSettings?.AllowGroupAdministration(context: context) == true || Permissions.CanManageTenant(context: context) ? new ErrorData(type: Error.Types.None) : new ErrorData(type: Error.Types.HasNotPermission)); }
/// <summary> /// Fixed: /// </summary> public static Error.Types OnUploadingTenantImage( Context context, SiteSettings ss, byte[] bin) { if (!Permissions.CanManageTenant(context) && context.UserSettings?.EnableManageTenant != true) { return(Error.Types.HasNotPermission); } if (bin == null) { return(Error.Types.SelectFile); } try { System.Drawing.Image.FromStream(new System.IO.MemoryStream(bin)); } catch (System.Exception) { return(Error.Types.IncorrectFileFormat); } return(Error.Types.None); }
public static ErrorData OnRestoring(Context context, SiteSettings ss, bool api = false) { if (api) { if ((!Parameters.Api.Enabled || context.ContractSettings.Api == false || context.UserSettings?.AllowApi(context: context) == false)) { return(new ErrorData(type: Error.Types.InvalidRequest)); } if (context.InvalidJsonData) { return(new ErrorData(type: Error.Types.InvalidJsonData)); } } if (!Parameters.Service.ShowProfiles && !context.HasPrivilege) { return(new ErrorData(type: Error.Types.InvalidRequest)); } return(Permissions.CanManageTenant(context: context) ? new ErrorData(type: Error.Types.None) : new ErrorData(type: Error.Types.HasNotPermission)); }
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()))); }
/// <summary> /// Fixed: /// </summary> public static Error.Types OnEntry(IContext context, SiteSettings ss) { return(Permissions.CanManageTenant(context: context) ? Error.Types.None : Error.Types.HasNotPermission); }
public static ErrorData OnRestoring(Context context) { return(Permissions.CanManageTenant(context: context) ? new ErrorData(type: Error.Types.None) : new ErrorData(type: Error.Types.HasNotPermission)); }
private static bool Using( Context context, SiteSettings ss, string referenceType, long siteId, NavigationMenu menu) { var canManageGroups = context.UserSettings?.AllowGroupAdministration(context: context) == true; var canCreateGroups = context.UserSettings?.AllowGroupCreation(context: context) == true; var canManageSite = siteId != 0 && context.CanManageSite( ss: ss, site: true); var canManageDepts = Permissions.CanManageTenant(context: context); var canManageUsers = Permissions.CanManageUser(context: context); var canManageRegistrations = Permissions.CanManageRegistrations(context: context); var canManageTenants = Permissions.CanManageTenant(context: context) || context.UserSettings?.EnableManageTenant == true; var canManageTrashBox = CanManageTrashBox( context: context, ss: ss); var canUseApi = context.UserSettings?.AllowApi(context: context) == true; var canUnlockSite = ss.LockedTable() && ss.LockedTableUser.Id == context.UserId; switch (menu.MenuId) { case "NewMenu": return(ss.ReferenceType == "Sites" && context.Action == "index" ? context.CanManageSite(ss: ss) : ss.ReferenceType == "Groups" ? canCreateGroups : context.CanCreate(ss: ss) && ss.ReferenceType != "Wikis" && context.Action != "trashbox"); case "ViewModeMenu": return(Def.ViewModeDefinitionCollection .Any(o => o.ReferenceType == referenceType)); case "SettingsMenu": return(canManageSite || canManageDepts || canManageGroups || canManageUsers || canUnlockSite); case "SettingsMenu_SiteSettings": return(canManageSite); case "SettingsMenu_DeptAdmin": return(canManageDepts); case "SettingsMenu_GroupAdmin": return(canManageGroups); case "SettingsMenu_UserAdmin": return(canManageUsers); case "SettingsMenu_Registrations": return(canManageRegistrations); case "SettingsMenu_TrashBox": return(canManageTrashBox); case "SettingsMenu_TenantAdmin": return(canManageTenants); case "SettingsMenu_ImportSitePackage": return(Parameters.SitePackage.Import && canManageSite && ss.IsSite(context: context) && ss.ReferenceType == "Sites" || (context.Controller == "items" && ss.SiteId == 0 && context.UserSettings?.AllowCreationAtTopSite(context: context) == true)); case "SettingsMenu_ExportSitePackage": return(Parameters.SitePackage.Export && canManageSite && ss.IsSite(context: context)); case "AccountMenu_ShowStartGuide": return(context.UserSettings?.ShowStartGuideAvailable(context: context) == true); case "AccountMenu_EditProfile": return(Parameters.Service.ShowProfiles); case "AccountMenu_ChangePassword": return(Parameters.Service.ShowChangePassword); case "AccountMenu_ApiSettings": return(Parameters.Api.Enabled && context.ContractSettings.Api != false && canUseApi); case "LockTableMenu_LockTable": case "LockTableMenu_ForceUnlockTable": return(canManageSite && ss.AllowLockTable == true); case "LockTableMenu_UnlockTable": return(ss.AllowLockTable == true); case "AccountMenu_Responsive": return(context.Mobile); default: return(true); } }
public static HtmlBuilder Breadcrumb( this HtmlBuilder hb, Context context, SiteSettings ss, View view, bool _using) { if ((!context.Authenticated && !context.Publish) || !_using) { return(hb); } switch (context.Controller) { case "admins": return(Breadcrumb( hb: hb, context: context, ss: ss, controller: context.Controller)); case "depts": return(Breadcrumb( hb: hb, context: context, ss: ss, controller: context.Controller, display: Displays.Depts(context: context))); case "tenants": return(Permissions.CanManageTenant(context: context) ? Breadcrumb( hb: hb, context: context, ss: ss, controller: context.Controller, display: Displays.Tenants(context: context), action: "Edit") : (context.UserSettings?.EnableManageTenant == true) ? BreadcrumbWithoutAdmins( hb: hb, context: context, ss: ss, controller: context.Controller, display: Displays.Tenants(context: context), action: "Edit") : Breadcrumb( hb: hb, context: context, ss: ss)); case "groups": return(Permissions.CanManageTenant(context: context) ? Breadcrumb( hb: hb, context: context, ss: ss, controller: context.Controller, display: Displays.Groups(context: context)) : Breadcrumb( hb: hb, context: context, ss: ss)); case "users": switch (context.Action) { case "editapi": return(hb.Breadcrumb( context: context, ss: ss, data: new Dictionary <string, string> { { Locations.Get( context: context, parts: new string[] { "Users", "EditApi" }), Displays.ApiSettings(context: context) } })); default: return(Permissions.CanManageTenant(context: context) ? Breadcrumb( hb: hb, context: context, ss: ss, controller: context.Controller, display: Displays.Users(context: context)) : Breadcrumb( hb: hb, context: context, ss: ss)); } case "registrations": return(Permissions.CanManageTenant(context: context) ? Breadcrumb( hb: hb, context: context, ss: ss, controller: context.Controller, display: Displays.Registrations(context: context)) : Breadcrumb( hb: hb, context: context, ss: ss)); case "publishes": case "items": return(hb .CopyDirectUrlToClipboard( context: context, view: view) .Breadcrumb( context: context, ss: ss)); case "permissions": return(hb.Breadcrumb(context: context, ss: ss)); default: return(hb); } }
private static HtmlBuilder NavigationMenu( this HtmlBuilder hb, Context context, SiteSettings ss, long siteId, string referenceType, bool useNavigationMenu) { var canManageGroups = Sessions.UserSettings().DisableGroupAdmin != true; var canManageSite = siteId != 0 && context.CanManageSite(ss: ss, site: true); var canManageDepts = Permissions.CanManageTenant(context: context); var canManageUsers = Permissions.CanManageTenant(context: context); var canManageTrashBox = CanManageTrashBox(context: context, ss: ss); return(hb.Ul( id: "NavigationMenu", action: () => hb .Li( action: () => hb .Div(action: () => hb .A( href: NewHref(context: context, ss: ss), attributes: SiteIndex(context: context, ss: 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" && context.Action == "index" ? context.CanManageSite(ss: ss) : context.CanCreate(ss: ss) && ss.ReferenceType != "Wikis" && context.Action != "trashbox") .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(context: context, 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, canManageTrashBox: canManageTrashBox), _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( context: context, userId: context.UserId))) .AccountMenu(context: context)))); }
/// <summary> /// Fixed: /// </summary> public static Error.Types OnEntry(SiteSettings ss) { return(Permissions.CanManageTenant() ? Error.Types.None : Error.Types.HasNotPermission); }
/// <summary> /// Fixed: /// </summary> public static ErrorData OnEntry(Context context, SiteSettings ss) { return(Permissions.CanManageTenant(context: context) ? new ErrorData(type: Error.Types.None) : new ErrorData(type: Error.Types.HasNotPermission)); }
public static Error.Types OnRestoring() { return(Permissions.CanManageTenant() ? Error.Types.None : Error.Types.HasNotPermission); }