Umbraco 7 保护图像

Umbraco 7 protect images

如果构建内部网,我们希望用户能够为自己的文档(例如,新闻条目、博客条目等)上传图像。 但是,访问媒体似乎也允许用户替换现有媒体上的图像。

因此,他们可能会更换家具(例如网站徽标等),因为这些都在媒体文件夹中。

我知道可以为用户提供媒体树的起始文件夹(类似于编辑文档的起始文件夹),但是,这意味着编辑每个用户以设置他们的起始点,因为似乎没有以任何方式集体执行此操作,例如通过角色或用户分组。

是否有其他解决方案,例如以另一种方式保存家具,以便只有管理员可以编辑它们?

据我所知,没有办法为媒体项目或文件夹分配实际权限。

但实际上,如果您有明确的方法知道将哪个起始节点分配给哪些用户,那么以编程方式执行此操作并不难:

var userService = UmbracoContext.Current.Application.Services.UserService;
var mediaService = UmbracoContext.Current.Application.Services.MediaService;
int total;

foreach (var user in userService.GetAll(0, 1000, out total))
{
    int targetMediaId = 0;

    switch(user.UserType.Id)
    {
        case 123:
            targetMediaId = 3;
            break;
        case 234:
            targetMediaId = 5;
            break;
    }
    user.StartMediaId = targetMediaId;

    userService.Save(user);
}

我使用 UserType 作为示例,说明您可能如何知道将什么分配给谁,因为我不知道您最终会怎么说。原则上,您可以 "easily" 尽可能地为每个用户创建一个媒体文件夹并将其指定为他们的起始媒体节点。