Umbraco 7保护图像

时间:2016-05-11 13:38:17

标签: image media umbraco7 access

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

因此,它们可能会取代家具(例如,网站徽标等),因为这些都会出现在媒体文件夹中。

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

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

1 个答案:

答案 0 :(得分:0)

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

但实际上,如果您确定了解哪个起始节点分配给哪些用户,那么以编程方式进行操作并不是那么棘手:

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作为一个例子,说明如何分配给谁,因为我不知道你最后会怎么说。原则上,你可以“轻松地”尽可能地为每个用户创建一个媒体文件夹并将其指定为它们的起始媒体节点。