Пример #1
0
        private static HtmlBuilder FieldSetGeneral(
            this HtmlBuilder hb,
            Context context,
            SiteSettings ss,
            TenantModel tenantModel)
        {
            var mine = tenantModel.Mine(context: context);

            return(hb.FieldSet(id: "FieldSetGeneral", action: () => hb
                               .FieldSetGeneralColumns(
                                   context: context, ss: ss, tenantModel: tenantModel)));
        }
Пример #2
0
        public static string History(Context context, SiteSettings ss, int tenantId)
        {
            var tenantModel = new TenantModel(context: context, ss: ss, tenantId: tenantId);

            ss.SetColumnAccessControls(
                context: context,
                mine: tenantModel.Mine(context: context));
            tenantModel.Get(
                context: context,
                ss: ss,
                where : Rds.TenantsWhere()
                .TenantId(tenantModel.TenantId)
                .Ver(context.Forms.Int("Ver")),
                tableType: Sqls.TableTypes.NormalAndHistory);
            tenantModel.VerType = context.Forms.Bool("Latest")
                ? Versions.VerTypes.Latest
                : Versions.VerTypes.History;
            return(EditorResponse(context, ss, tenantModel).ToJson());
        }
Пример #3
0
        public static string Editor(
            Context context, SiteSettings ss, TenantModel tenantModel)
        {
            var invalid = TenantValidators.OnEditing(
                context: context,
                ss: ss,
                tenantModel: tenantModel);

            switch (invalid)
            {
            case Error.Types.None: break;

            default: return(HtmlTemplates.Error(context, invalid));
            }
            var hb = new HtmlBuilder();

            ss.SetColumnAccessControls(
                context: context,
                mine: tenantModel.Mine(context: context));
            return(hb.Template(
                       context: context,
                       ss: ss,
                       view: null,
                       verType: tenantModel.VerType,
                       methodType: tenantModel.MethodType,
                       referenceType: "Tenants",
                       title: tenantModel.MethodType == BaseModel.MethodTypes.New
                    ? Displays.Tenants(context: context) + " - " + Displays.New(context: context)
                    : tenantModel.Title.Value,
                       action: () =>
            {
                hb
                .Editor(
                    context: context,
                    ss: ss,
                    tenantModel: tenantModel)
                .Hidden(controlId: "TableName", value: "Tenants")
                .Hidden(controlId: "Controller", value: context.Controller)
                .Hidden(controlId: "Id", value: tenantModel.TenantId.ToString());
            }).ToString());
        }
Пример #4
0
        public static string Histories(
            Context context, SiteSettings ss, int tenantId, Message message = null)
        {
            var tenantModel = new TenantModel(context: context, ss: ss, tenantId: tenantId);

            ss.SetColumnAccessControls(
                context: context,
                mine: tenantModel.Mine(context: context));
            var columns = ss.GetHistoryColumns(context: context, checkPermission: true);

            if (!context.CanRead(ss: ss))
            {
                return(Error.Types.HasNotPermission.MessageJson(context: context));
            }
            var hb = new HtmlBuilder();

            hb
            .HistoryCommands(context: context, ss: ss)
            .Table(
                attributes: new HtmlAttributes().Class("grid history"),
                action: () => hb
                .THead(action: () => hb
                       .GridHeader(
                           context: context,
                           columns: columns,
                           sort: false,
                           checkRow: true))
                .TBody(action: () => hb
                       .HistoriesTableBody(
                           context: context,
                           ss: ss,
                           columns: columns,
                           tenantModel: tenantModel)));
            return(new TenantsResponseCollection(tenantModel)
                   .Html("#FieldSetHistories", hb)
                   .Message(message)
                   .ToJson());
        }
        public static ErrorData OnCreating(
            Context context, SiteSettings ss, TenantModel tenantModel, 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(!context.CanRead(ss: ss)
                    ? new ErrorData(type: Error.Types.NotFound)
                    : new ErrorData(type: Error.Types.HasNotPermission));
            }
            ss.SetColumnAccessControls(context: context, mine: tenantModel.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 "TenantName":
                    if (tenantModel.TenantName_Updated(context: context, column: column))
                    {
                        return(new ErrorData(type: Error.Types.HasNotPermission));
                    }
                    break;

                case "Title":
                    if (tenantModel.Title_Updated(context: context, column: column))
                    {
                        return(new ErrorData(type: Error.Types.HasNotPermission));
                    }
                    break;

                case "Body":
                    if (tenantModel.Body_Updated(context: context, column: column))
                    {
                        return(new ErrorData(type: Error.Types.HasNotPermission));
                    }
                    break;

                case "DisableAllUsersPermission":
                    if (tenantModel.DisableAllUsersPermission_Updated(context: context, column: column))
                    {
                        return(new ErrorData(type: Error.Types.HasNotPermission));
                    }
                    break;

                case "DisableStartGuide":
                    if (tenantModel.DisableStartGuide_Updated(context: context, column: column))
                    {
                        return(new ErrorData(type: Error.Types.HasNotPermission));
                    }
                    break;

                case "LogoType":
                    if (tenantModel.LogoType_Updated(context: context, column: column))
                    {
                        return(new ErrorData(type: Error.Types.HasNotPermission));
                    }
                    break;

                case "HtmlTitleTop":
                    if (tenantModel.HtmlTitleTop_Updated(context: context, column: column))
                    {
                        return(new ErrorData(type: Error.Types.HasNotPermission));
                    }
                    break;

                case "HtmlTitleSite":
                    if (tenantModel.HtmlTitleSite_Updated(context: context, column: column))
                    {
                        return(new ErrorData(type: Error.Types.HasNotPermission));
                    }
                    break;

                case "HtmlTitleRecord":
                    if (tenantModel.HtmlTitleRecord_Updated(context: context, column: column))
                    {
                        return(new ErrorData(type: Error.Types.HasNotPermission));
                    }
                    break;

                case "ContractDeadline":
                    if (tenantModel.ContractDeadline_Updated(context: context, column: column))
                    {
                        return(new ErrorData(type: Error.Types.HasNotPermission));
                    }
                    break;

                case "Comments":
                    if (tenantModel.Comments_Updated(context: context))
                    {
                        return(new ErrorData(type: Error.Types.HasNotPermission));
                    }
                    break;

                default:
                    switch (Def.ExtendedColumnTypes.Get(column.Name))
                    {
                    case "Class":
                        if (tenantModel.Class_Updated(
                                columnName: column.Name,
                                context: context,
                                column: column))
                        {
                            return(new ErrorData(type: Error.Types.HasNotPermission));
                        }
                        break;

                    case "Num":
                        if (tenantModel.Num_Updated(
                                columnName: column.Name,
                                context: context,
                                column: column))
                        {
                            return(new ErrorData(type: Error.Types.HasNotPermission));
                        }
                        break;

                    case "Date":
                        if (tenantModel.Date_Updated(
                                columnName: column.Name,
                                context: context,
                                column: column))
                        {
                            return(new ErrorData(type: Error.Types.HasNotPermission));
                        }
                        break;

                    case "Description":
                        if (tenantModel.Description_Updated(
                                columnName: column.Name,
                                context: context,
                                column: column))
                        {
                            return(new ErrorData(type: Error.Types.HasNotPermission));
                        }
                        break;

                    case "Check":
                        if (tenantModel.Check_Updated(
                                columnName: column.Name,
                                context: context,
                                column: column))
                        {
                            return(new ErrorData(type: Error.Types.HasNotPermission));
                        }
                        break;

                    case "Attachments":
                        if (tenantModel.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));
        }
Пример #6
0
        public static HtmlBuilder TdValue(
            this HtmlBuilder hb,
            Context context,
            SiteSettings ss,
            Column column,
            TenantModel tenantModel)
        {
            if (!column.GridDesign.IsNullOrEmpty())
            {
                return(hb.TdCustomValue(
                           context: context,
                           ss: ss,
                           gridDesign: column.GridDesign,
                           tenantModel: tenantModel));
            }
            else
            {
                var mine = tenantModel.Mine(context: context);
                switch (column.Name)
                {
                case "Ver":
                    return(ss.ReadColumnAccessControls.Allowed(
                               context: context,
                               ss: ss,
                               column: column,
                               type: ss.PermissionType,
                               mine: mine)
                                ? hb.Td(
                               context: context,
                               column: column,
                               value: tenantModel.Ver)
                                : hb.Td(
                               context: context,
                               column: column,
                               value: string.Empty));

                case "Comments":
                    return(ss.ReadColumnAccessControls.Allowed(
                               context: context,
                               ss: ss,
                               column: column,
                               type: ss.PermissionType,
                               mine: mine)
                                ? hb.Td(
                               context: context,
                               column: column,
                               value: tenantModel.Comments)
                                : hb.Td(
                               context: context,
                               column: column,
                               value: string.Empty));

                case "Creator":
                    return(ss.ReadColumnAccessControls.Allowed(
                               context: context,
                               ss: ss,
                               column: column,
                               type: ss.PermissionType,
                               mine: mine)
                                ? hb.Td(
                               context: context,
                               column: column,
                               value: tenantModel.Creator)
                                : hb.Td(
                               context: context,
                               column: column,
                               value: string.Empty));

                case "Updator":
                    return(ss.ReadColumnAccessControls.Allowed(
                               context: context,
                               ss: ss,
                               column: column,
                               type: ss.PermissionType,
                               mine: mine)
                                ? hb.Td(
                               context: context,
                               column: column,
                               value: tenantModel.Updator)
                                : hb.Td(
                               context: context,
                               column: column,
                               value: string.Empty));

                case "CreatedTime":
                    return(ss.ReadColumnAccessControls.Allowed(
                               context: context,
                               ss: ss,
                               column: column,
                               type: ss.PermissionType,
                               mine: mine)
                                ? hb.Td(
                               context: context,
                               column: column,
                               value: tenantModel.CreatedTime)
                                : hb.Td(
                               context: context,
                               column: column,
                               value: string.Empty));

                case "UpdatedTime":
                    return(ss.ReadColumnAccessControls.Allowed(
                               context: context,
                               ss: ss,
                               column: column,
                               type: ss.PermissionType,
                               mine: mine)
                                ? hb.Td(
                               context: context,
                               column: column,
                               value: tenantModel.UpdatedTime)
                                : hb.Td(
                               context: context,
                               column: column,
                               value: string.Empty));

                default: return(hb);
                }
            }
        }
        public static Error.Types OnCreating(
            IContext context, SiteSettings ss, TenantModel tenantModel, 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: tenantModel.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 "TenantName":
                    if (tenantModel.TenantName_Updated(context: context, column: column))
                    {
                        return(Error.Types.HasNotPermission);
                    }
                    break;

                case "Title":
                    if (tenantModel.Title_Updated(context: context, column: column))
                    {
                        return(Error.Types.HasNotPermission);
                    }
                    break;

                case "Body":
                    if (tenantModel.Body_Updated(context: context, column: column))
                    {
                        return(Error.Types.HasNotPermission);
                    }
                    break;

                case "LogoType":
                    if (tenantModel.LogoType_Updated(context: context, column: column))
                    {
                        return(Error.Types.HasNotPermission);
                    }
                    break;

                case "HtmlTitleTop":
                    if (tenantModel.HtmlTitleTop_Updated(context: context, column: column))
                    {
                        return(Error.Types.HasNotPermission);
                    }
                    break;

                case "HtmlTitleSite":
                    if (tenantModel.HtmlTitleSite_Updated(context: context, column: column))
                    {
                        return(Error.Types.HasNotPermission);
                    }
                    break;

                case "HtmlTitleRecord":
                    if (tenantModel.HtmlTitleRecord_Updated(context: context, column: column))
                    {
                        return(Error.Types.HasNotPermission);
                    }
                    break;

                case "ContractDeadline":
                    if (tenantModel.ContractDeadline_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);
        }