2016-05-11 4 views
0

イントラネットを構築する場合、ユーザーは自分の文書(ニュースアイテム、ブログエントリなど)の画像をアップロードできるようにしたいと考えています。 しかし、メディアにアクセスすると、ユーザーは既存のメディア上のイメージを置き換えることもできるようです。Umbraco 7画像を保護する

したがって、おそらく家具(たとえば、サイトロゴなど)は、メディアフォルダにすべて含まれるため、家具を置き換えることができます。

私は、メディアツリーの開始フォルダ(ドキュメントの編集に似ています)をユーザーに与えることができると思いますが、そうでないように、すべてのユーザーに開始ポイントを設定するように指示しますどのような方法でも、ロールやユーザーのグループ分けでこれを行うことができます。

家具を別の方法で保存するなど、管理者だけが編集できるようにするなどの方法がありますか?

答えて

0

私の知る限り、実際の権利をメディアアイテムやフォルダに割り当てる方法はありません。

しかし、あなたはノードを起動すると、割り当てたかを知る確実な方法を持っている場合、ユーザー、実際に、それはプログラム的にそれを行うには、そのトリッキーではありません:私は例としてのUserTypeを使用しました

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); 
} 

を私はあなたが最後にどのように伝えるかわからないので、どのようにあなたが誰に割り当てるべきかを知っているかもしれません。原則として、あなたは「簡単に」、私は夢中になり、ユーザーごとにメディアフォルダを作成し、開始メディアノードとして割り当てることができます。

+0

いいですね - このコードはどこに行きますか? – YesGenesisCamel

+0

基本的にどこにでも行くことができます。起動時に実行するApplicationEventHandlerクラスに配置することができます。これを再度削除することを忘れないでください。一度だけ起動しても起動しないようにしてください。または、部分的なビューマクロを挿入し、ページに挿入して、ページを一度訪れてください。この例は1回限りの実行ですが、UserService.SavingUser(これは名前だと思います)イベントに同様のものを追加することができます。したがって、新規ユーザーごとに作成時に開始ノードが設定されます。 –

+0

ありがとう、Jannik、しかし、私はこれを初めて知っているので、コードがどこにあるのかわかりません。以前はフロントエンドのコーディングのためにApp_Codeを指摘していましたが、バックオフィスのものはどうでしょうか。物理的にどこに.csファイルがあるのでしょうか? – YesGenesisCamel

関連する問題