Esempio n. 1
0
 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())));
 }
Esempio n. 2
0
        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);
 }
Esempio n. 4
0
 /// <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);
 }
Esempio n. 5
0
 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);
        }
Esempio n. 7
0
        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);
        }
Esempio n. 9
0
        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);
        }
Esempio n. 10
0
        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);
        }
Esempio n. 11
0
 public static bool CanMove(SiteSettings source, SiteSettings destination)
 {
     return(source.CanUpdate() && destination.CanUpdate());
 }
Esempio n. 12
0
        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();
            })));
        }