public bool SetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting, WebDavFolderRule[] rules) { var users = new List <UserPermission>(); foreach (var rule in rules) { foreach (var user in rule.Users) { users.Add(new UserPermission { AccountName = user, Read = rule.Read, Write = rule.Write }); } foreach (var role in rule.Roles) { users.Add(new UserPermission { AccountName = role, Read = rule.Read, Write = rule.Write }); } } var webDavSetting = GetWebDavSetting(setting); string path = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder, organizationId, folder); SecurityUtils.ResetNtfsPermissions(path); // 06.09.2015 [email protected] // Problem: Serversettings for the Method 'GrantGroupNtfsPermission' is an Default Object, but we need the real Object // for the real Settings, to determine Objects from AD // Fix: Give the Helper-Class SecurityUtils the real ServerSettings-Object // SecurityUtils.GrantGroupNtfsPermissions(path, users.ToArray(), false, new RemoteServerSettings(), null, null); SecurityUtils.GrantGroupNtfsPermissions(path, users.ToArray(), false, ServerSettings, "*", "*"); IWebDav webdav = new WebDav(webDavSetting); return(webdav.SetFolderWebDavRules(organizationId, folder, rules)); }
public bool SetFolderWebDavRules(string organizationId, string folder, WebDavSetting setting, WebDavFolderRule[] rules) { var users = new List <UserPermission>(); foreach (var rule in rules) { foreach (var user in rule.Users) { users.Add(new UserPermission { AccountName = user, Read = rule.Read, Write = rule.Write }); } foreach (var role in rule.Roles) { users.Add(new UserPermission { AccountName = role, Read = rule.Read, Write = rule.Write }); } } var webDavSetting = GetWebDavSetting(setting); string path = string.Format("{0}:\\{1}\\{2}\\{3}", webDavSetting.LocationDrive, webDavSetting.HomeFolder, organizationId, folder); SecurityUtils.ResetNtfsPermissions(path); SecurityUtils.GrantGroupNtfsPermissions(path, users.ToArray(), false, new RemoteServerSettings(), null, null); //SecurityUtils.GrantGroupNtfsPermissions(path, users.ToArray(), false, ServerSettings, "*", "*"); IWebDav webdav = new WebDav(webDavSetting); return(webdav.SetFolderWebDavRules(organizationId, folder, rules)); }