Beispiel #1
0
        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));
        }
Beispiel #2
0
        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));
        }