コード例 #1
0
        public override IDictionary <string, ContentModifierForm> BuildModifierForm(ApplicationRole datum,
                                                                                    DatumModifyOperation operation, Type datumType)
        {
            if (!operation.IsCreateOrUpdateOperation())
            {
                return(null);
            }
            var f = new RoleDatumModifierForm {
                Id          = datum.Id,
                Name        = datum.Name,
                Description = datum.Description
            };
            var perms   = new List <string>();
            var permIds = _permMgr.GetRolesPermissions(new[] { datum.Name }).ToArray();

            foreach (var perm in _permMgr.AllPermissions)
            {
                foreach (var permId in permIds)
                {
                    if (perm.Id != permId)
                    {
                        continue;
                    }
                    perms.Add(perm.Id);
                }
            }
            f.Permissions = perms.ToArray();
            return(new Dictionary <string, ContentModifierForm> {
                [FORM_KEY] = f
            });
        }
コード例 #2
0
        public override VueComponentDefinition[] GetTableRowVue(ApplicationRole datum, string fieldName)
        {
            switch (fieldName)
            {
            case nameof(ApplicationRole.Name):
                return(new VueComponentDefinition[] {
                    new VueHtmlWidget(datum.Name)
                });

            case nameof(ApplicationRole.Description):
                return(new VueComponentDefinition[] {
                    new VueHtmlWidget(datum.Description)
                });

            case "Permissions":
                var permHead = new[] { "Category", "Sub Category", "Name", "Description", "Id" };
                var permBody = new List <string[]>();

                var permIds = _permMgr.GetRolesPermissions(new[] { datum.Name }).ToArray();
                foreach (var perm in _permMgr.AllPermissions)
                {
                    foreach (var permId in permIds)
                    {
                        if (perm.Id != permId)
                        {
                            continue;
                        }

                        permBody.Add(new[] {
                            perm.CategoryName, perm.SubCategoryName, perm.DisplayName, perm.Description,
                            $"<code>{perm.Id}</code>"
                        });
                    }
                }

                var permVue = permBody.Count > 0
                        ? (VueComponentDefinition) new VueTableWidget(permHead, permBody.OrderBy(x => x[0]).ThenBy(x => x[1]))
                        : new VueHtmlWidget("-n/a-");

                return(new [] { permVue });

            case nameof(ApplicationRole.CreatedUtc):
                return(new VueComponentDefinition[] {
                    new VueHtmlWidget(datum.CreatedUtc.ToString(ProtoContent.DATE_FORMAT_FOR_DISPLAY))
                });

            case nameof(ApplicationRole.UpdatedUtc):
                return(new VueComponentDefinition[] {
                    new VueHtmlWidget(datum.UpdatedUtc.ToString(ProtoContent.DATE_FORMAT_FOR_DISPLAY))
                });

            case nameof(ApplicationRole.Id):
                return(new VueComponentDefinition[] {
                    new VueHtmlWidget(datum.Id)
                });
            }
            return(null);
        }