public static string Editor(SiteSettings ss, GroupModel groupModel) { var invalid = GroupValidators.OnEditing(ss, groupModel); switch (invalid) { case Error.Types.None: break; default: return(HtmlTemplates.Error(invalid)); } var hb = new HtmlBuilder(); ss.SetColumnAccessControls(groupModel.Mine()); return(hb.Template( ss: ss, verType: groupModel.VerType, methodType: groupModel.MethodType, referenceType: "Groups", title: groupModel.MethodType == BaseModel.MethodTypes.New ? Displays.Groups() + " - " + Displays.New() : groupModel.Title.Value, action: () => { hb .Editor( ss: ss, groupModel: groupModel) .Hidden(controlId: "TableName", value: "Groups") .Hidden(controlId: "Id", value: groupModel.GroupId.ToString()); }).ToString()); }
private static HtmlBuilder FieldSetGeneral( this HtmlBuilder hb, SiteSettings ss, GroupModel groupModel) { var mine = groupModel.Mine(); return(hb.FieldSet(id: "FieldSetGeneral", action: () => hb .FieldSetGeneralColumns( ss: ss, groupModel: groupModel))); }
private static HtmlBuilder FieldSetGeneral( this HtmlBuilder hb, SiteSettings ss, GroupModel groupModel) { var mine = groupModel.Mine(); return(hb.FieldSet(id: "FieldSetGeneral", action: () => { ss.GetEditorColumns().ForEach(column => { switch (column.ColumnName) { case "GroupId": hb.Field( ss, column, groupModel.MethodType, groupModel.GroupId.ToControl(ss, column), column.ColumnPermissionType()); break; case "Ver": hb.Field( ss, column, groupModel.MethodType, groupModel.Ver.ToControl(ss, column), column.ColumnPermissionType()); break; case "GroupName": hb.Field( ss, column, groupModel.MethodType, groupModel.GroupName.ToControl(ss, column), column.ColumnPermissionType()); break; case "Body": hb.Field( ss, column, groupModel.MethodType, groupModel.Body.ToControl(ss, column), column.ColumnPermissionType()); break; } }); hb.VerUpCheckBox(groupModel); })); }
public static Error.Types OnCreating(SiteSettings ss, GroupModel groupModel) { if (!ss.CanCreate()) { return(Error.Types.HasNotPermission); } ss.SetColumnAccessControls(groupModel.Mine()); foreach (var column in ss.Columns .Where(o => !o.CanCreate) .Where(o => !ss.FormulaTarget(o.ColumnName)) .Where(o => !o.Linking)) { switch (column.ColumnName) { case "TenantId": if (groupModel.TenantId_Updated() && (column.DefaultInput.IsNullOrEmpty() || column.DefaultInput.ToInt() != groupModel.TenantId)) { return(Error.Types.HasNotPermission); } break; case "GroupName": if (groupModel.GroupName_Updated() && (column.DefaultInput.IsNullOrEmpty() || column.DefaultInput.ToString() != groupModel.GroupName)) { return(Error.Types.HasNotPermission); } break; case "Body": if (groupModel.Body_Updated() && (column.DefaultInput.IsNullOrEmpty() || column.DefaultInput.ToString() != groupModel.Body)) { 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 OnCreating( Context context, SiteSettings ss, GroupModel groupModel, bool api = false) { if (api && (context.ContractSettings.Api == false || !Parameters.Api.Enabled)) { return(Error.Types.InvalidRequest); } if (!context.CanCreate(ss: ss)) { return(Error.Types.HasNotPermission); } ss.SetColumnAccessControls(context: context, mine: groupModel.Mine(context: context)); foreach (var column in ss.Columns .Where(o => !o.CanCreate) .Where(o => !ss.FormulaTarget(o.ColumnName)) .Where(o => !o.Linking)) { switch (column.ColumnName) { case "TenantId": if (groupModel.TenantId_Updated(context: context, column: column)) { return(Error.Types.HasNotPermission); } break; case "GroupName": if (groupModel.GroupName_Updated(context: context, column: column)) { return(Error.Types.HasNotPermission); } break; case "Body": if (groupModel.Body_Updated(context: context, column: column)) { return(Error.Types.HasNotPermission); } break; case "Comments": if (!ss.GetColumn(context: context, columnName: "Comments").CanUpdate) { return(Error.Types.HasNotPermission); } break; } } return(Error.Types.None); }
public static string History(SiteSettings ss, int groupId) { var groupModel = new GroupModel(ss, groupId); ss.SetColumnAccessControls(groupModel.Mine()); groupModel.Get( ss, where : Rds.GroupsWhere() .GroupId(groupModel.GroupId) .Ver(Forms.Int("Ver")), tableType: Sqls.TableTypes.NormalAndHistory); groupModel.VerType = Forms.Bool("Latest") ? Versions.VerTypes.Latest : Versions.VerTypes.History; return(EditorResponse(ss, groupModel).ToJson()); }
public static string Histories(SiteSettings ss, int groupId) { var groupModel = new GroupModel(ss, groupId); ss.SetColumnAccessControls(groupModel.Mine()); var columns = ss.GetHistoryColumns(checkPermission: true); if (!ss.CanRead()) { return(Error.Types.HasNotPermission.MessageJson()); } var hb = new HtmlBuilder(); hb.Table( attributes: new HtmlAttributes().Class("grid"), action: () => hb .THead(action: () => hb .GridHeader( columns: columns, sort: false, checkRow: false)) .TBody(action: () => new GroupCollection( ss: ss, column: HistoryColumn(columns), where : Rds.GroupsWhere().GroupId(groupModel.GroupId), orderBy: Rds.GroupsOrderBy().Ver(SqlOrderBy.Types.desc), tableType: Sqls.TableTypes.NormalAndHistory) .ForEach(groupModelHistory => hb .Tr( attributes: new HtmlAttributes() .Class("grid-row history not-link") .DataAction("History") .DataMethod("post") .DataVer(groupModelHistory.Ver) .DataLatest(1, _using: groupModelHistory.Ver == groupModel.Ver), action: () => columns .ForEach(column => hb .TdValue( ss: ss, column: column, groupModel: groupModelHistory)))))); return(new GroupsResponseCollection(groupModel) .Html("#FieldSetHistories", hb).ToJson()); }
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( Context context, SiteSettings ss, GroupModel groupModel) { if (!context.CanUpdate(ss: ss)) { return(Error.Types.HasNotPermission); } ss.SetColumnAccessControls(context: context, mine: groupModel.Mine(context: context)); foreach (var column in ss.Columns .Where(o => !o.CanUpdate) .Where(o => !ss.FormulaTarget(o.ColumnName))) { switch (column.ColumnName) { case "TenantId": if (groupModel.TenantId_Updated(context: context)) { return(Error.Types.HasNotPermission); } break; case "GroupName": if (groupModel.GroupName_Updated(context: context)) { return(Error.Types.HasNotPermission); } break; case "Body": if (groupModel.Body_Updated(context: context)) { return(Error.Types.HasNotPermission); } break; case "Comments": if (!ss.GetColumn(context: context, columnName: "Comments").CanUpdate) { return(Error.Types.HasNotPermission); } break; } } return(Error.Types.None); }
public static HtmlBuilder TdValue( this HtmlBuilder hb, SiteSettings ss, Column column, GroupModel groupModel) { if (!column.GridDesign.IsNullOrEmpty()) { return(hb.TdCustomValue( ss: ss, gridDesign: column.GridDesign, groupModel: groupModel)); } else { var mine = groupModel.Mine(); switch (column.Name) { case "GroupId": return(ss.ReadColumnAccessControls.Allowed(column, ss.PermissionType, mine) ? hb.Td(column: column, value: groupModel.GroupId) : hb.Td(column: column, value: string.Empty)); case "Ver": return(ss.ReadColumnAccessControls.Allowed(column, ss.PermissionType, mine) ? hb.Td(column: column, value: groupModel.Ver) : hb.Td(column: column, value: string.Empty)); case "GroupName": return(ss.ReadColumnAccessControls.Allowed(column, ss.PermissionType, mine) ? hb.Td(column: column, value: groupModel.GroupName) : hb.Td(column: column, value: string.Empty)); case "Body": return(ss.ReadColumnAccessControls.Allowed(column, ss.PermissionType, mine) ? hb.Td(column: column, value: groupModel.Body) : hb.Td(column: column, value: string.Empty)); case "Comments": return(ss.ReadColumnAccessControls.Allowed(column, ss.PermissionType, mine) ? hb.Td(column: column, value: groupModel.Comments) : hb.Td(column: column, value: string.Empty)); case "Creator": return(ss.ReadColumnAccessControls.Allowed(column, ss.PermissionType, mine) ? hb.Td(column: column, value: groupModel.Creator) : hb.Td(column: column, value: string.Empty)); case "Updator": return(ss.ReadColumnAccessControls.Allowed(column, ss.PermissionType, mine) ? hb.Td(column: column, value: groupModel.Updator) : hb.Td(column: column, value: string.Empty)); case "CreatedTime": return(ss.ReadColumnAccessControls.Allowed(column, ss.PermissionType, mine) ? hb.Td(column: column, value: groupModel.CreatedTime) : hb.Td(column: column, value: string.Empty)); case "UpdatedTime": return(ss.ReadColumnAccessControls.Allowed(column, ss.PermissionType, mine) ? hb.Td(column: column, value: groupModel.UpdatedTime) : hb.Td(column: column, value: string.Empty)); default: return(hb); } } }
public static ErrorData OnCreating( Context context, SiteSettings ss, GroupModel groupModel, bool api = false) { if (api && (context.ContractSettings.Api == false || !Parameters.Api.Enabled)) { return(new ErrorData(type: Error.Types.InvalidRequest)); } if (!context.CanCreate(ss: ss)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } ss.SetColumnAccessControls(context: context, mine: groupModel.Mine(context: context)); foreach (var column in ss.Columns .Where(o => !o.CanCreate) .Where(o => !ss.FormulaTarget(o.ColumnName)) .Where(o => !o.Linking)) { switch (column.ColumnName) { case "TenantId": if (groupModel.TenantId_Updated(context: context, column: column)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; case "GroupName": if (groupModel.GroupName_Updated(context: context, column: column)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; case "Body": if (groupModel.Body_Updated(context: context, column: column)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; case "Comments": if (!ss.GetColumn(context: context, columnName: "Comments").CanUpdate) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; default: switch (Def.ExtendedColumnTypes.Get(column.Name)) { case "Class": if (groupModel.Class_Updated( columnName: column.Name, context: context, column: column)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; case "Num": if (groupModel.Num_Updated( columnName: column.Name, context: context, column: column)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; case "Date": if (groupModel.Date_Updated( columnName: column.Name, context: context, column: column)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; case "Description": if (groupModel.Description_Updated( columnName: column.Name, context: context, column: column)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; case "Check": if (groupModel.Check_Updated( columnName: column.Name, context: context, column: column)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; case "Attachments": if (groupModel.Attachments_Updated( columnName: column.Name, context: context, column: column)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; } break; } } return(new ErrorData(type: Error.Types.None)); }
public static ErrorData OnCreating( Context context, SiteSettings ss, GroupModel groupModel, 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 (!context.CanCreate(ss: ss) || groupModel.ReadOnly) { return(!context.CanRead(ss: ss) ? new ErrorData(type: Error.Types.NotFound) : new ErrorData(type: Error.Types.HasNotPermission)); } foreach (var column in ss.Columns .Where(o => !o.CanCreate( context: context, ss: ss, mine: groupModel.Mine(context: context))) .Where(o => !ss.FormulaTarget(o.ColumnName)) .Where(o => !o.Linking)) { switch (column.ColumnName) { case "TenantId": if (groupModel.TenantId_Updated(context: context, column: column)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; case "GroupName": if (groupModel.GroupName_Updated(context: context, column: column)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; case "Body": if (groupModel.Body_Updated(context: context, column: column)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; case "Disabled": if (groupModel.Disabled_Updated(context: context, column: column)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; case "Comments": if (groupModel.Comments_Updated(context: context)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; default: switch (Def.ExtendedColumnTypes.Get(column.Name)) { case "Class": if (groupModel.Class_Updated( columnName: column.Name, context: context, column: column)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; case "Num": if (groupModel.Num_Updated( columnName: column.Name, context: context, column: column)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; case "Date": if (groupModel.Date_Updated( columnName: column.Name, context: context, column: column)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; case "Description": if (groupModel.Description_Updated( columnName: column.Name, context: context, column: column)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; case "Check": if (groupModel.Check_Updated( columnName: column.Name, context: context, column: column)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; case "Attachments": if (groupModel.Attachments_Updated( columnName: column.Name, context: context, column: column)) { return(new ErrorData(type: Error.Types.HasNotPermission)); } break; } break; } } return(new ErrorData(type: Error.Types.None)); }