none
совместный доступ по умолчанию RRS feed

  • Вопрос

  • Господа, при создании сайт коллеции обычно создается 3 группы. Владелец, Гость и участник..

    Почему то мне кажется что привилегии у участников иногда - изменить, а иногда совместный доступ!

    При изменить они имеют более расширенные права, в том числе и удаления списков. Мне надоедает все время переопределять права участников на совместный доступ. Как это сделать по умолчанию?

    СПС.

    10 ноября 2014 г. 15:21

Ответы

  • Дальше все плохо...

    Исследования dll source показали  - идет проверка именно на наличие роли Edit на сайт коллекции:

    В SPUtilityInternal.ShouldUseEditRole есть такой код:

    internal static bool ShouldUseEditRole(SPWeb web)
    {
        if (web.RoleDefinitions.GetByTypeNoThrow(SPRoleType.Editor) == null)
        {
            return false;
        }
        return web.UseEditRole;
    }

    Следовательно, если такая роль (Edit) есть, то она будет использоваться по умолчанию. Если такой роли нет - будет использоваться Contribute.

    Так что алгоритм решения данной проблемы такой:

    1. Скриптом (или вручную, или чем хотите) заменяете на всех сайтах роль Edit на Contribute.

    2. Удаляете роль Edit.

    Так как все зашито в dll, то боюсь это единственный вариант решения данной проблемы.

    Надо патчить ядро или удалять роль.

    • Изменено Maxim Shusharin 11 ноября 2014 г. 7:13
    • Помечено в качестве ответа Andrey Osinniy 11 ноября 2014 г. 8:33
    11 ноября 2014 г. 6:52
  • Кстати в Microsoft открыт запрос на исправление этого кода и они подтвердили ошибку, следовательно ждем обновлений, должны исправить.

    Я как понимаю просто забыли вставить в опции коллекции сайтов флаг web.UseEditRole.

    • Изменено Maxim Shusharin 11 ноября 2014 г. 10:29
    • Помечено в качестве ответа Andrey Osinniy 11 ноября 2014 г. 11:56
    11 ноября 2014 г. 10:28

Все ответы

  • Добрый день,

    права на "Изменение" это и есть совместная работа, они никогда не давали право удалять списки, если конечно у вас не сделаны изменения дефолтных настроек. Удалять и добавлять можно минимум с правом "Проектирование".

    10 ноября 2014 г. 15:27
  • На самом деле это не так. На 3-х фермах в том числе и на офис 365 только что проверил.

    Те кто имеют уровень разрешений -  изменять могу и удалять и менять столбцы и тд

    А совместная работа -позволяет только удалять и изменять элементы.

    Уже обжигался много раз.

    Совместная работа - Возможность просмотра, добавления, обновления и удаления элементов списков и документов.

    Изменить - Возможность добавлять, изменять и удалять списки; можно просматривать, добавлять, обновлять и удалять элементы списков и документы.

    Но на самом деле мой вопрос в этом и заключается где это можно поменять? Что бы группа участники получала привилегии СОВМЕСТНАЯ РАБОТА по умолчанию!

    10 ноября 2014 г. 15:35
  • http://technet.microsoft.com/en-us/library/cc262690(v=office.15).aspx

    Members-Edit-Use this group to grant people Edit permissions to the SharePoint site.

    Edit    Includes permissions that enable users to add, edit and delete lists; can view, add, update and delete list items and documents.

    10 ноября 2014 г. 16:10
  • Я так понимаю все стали переопределять права на своих фермах? я тоже этим занимался когда то матерясь :)))))))
    10 ноября 2014 г. 16:47
  • Я так понимаю все стали переопределять права на своих фермах? я тоже этим занимался когда то матерясь :)))))))

    Стоп, портал - владельцы - "Полный доступ", портал - посетители - "Чтение", портал участники - "Совместная работа". "Совместная работа" не должна давать право на удаление списков. Как таковой группы разрешений "Изменение" - нет. Если она у вас есть - удалите.

    11 ноября 2014 г. 1:27
  • Вы же не указали исходные данные, а это ферма 2013, вот и спорим тут... Группа "Edit" - дает права группы "Contribute" (совместная работа) + права на изменение списков, включая их удаление. Но по умолчанию дается право Contribute, Edit не должно быть.
    11 ноября 2014 г. 1:38
  • Максим, в очередной раз спасибо за Дискуссию. Да Вы правы я зря не указал что 2013. Сейчас проверил в 2010 это не так. Поэтому я и запутался, что иногда у меня ферма разворачивается нормально, а иногда с подобным косяком. Теперь понятно, что это в 13. Убрать удаление списков я могу.. Но зачем? привилегия "изменения" дает такую возможность по дефолту. В привелегии "совместная работа"- этой возможности нет. Я даже ссылку привел. Да Вы и у себя посмотрите. Поэтому я и спросил вопрос, как переопределить привелегию изменения на совместную работу для груп "участники" сразу на всей ферме. Для уже созданных и создаваемых в будущем. Неужели каждый ручками переопределяет на каждый созданной коллекцией? Вы пишите- что по умолчанию дается - контрибут. Edit не должно быть. Хм.... Не хочу Вас обидеть. Подтвердите пожта- что Вы специально ничего не настраивали и у Вас так и есть в 13 шарике.
    11 ноября 2014 г. 4:26
  • Добрый день,

    проверил в 2013. Да вы правы, по умолчанию дается Edit.

    GROUP PERMISSION LEVEL
    Visitors

    Read    This level includes these permissions:

    • Open
    • View Items, Versions, pages, and Application pages
    • Browse User Information
    • Create Alerts
    • Use Self-Service Site Creation
    • Use Remote Interfaces
    • Use Client Integration Features
    Members

    Edit.     This level includes all permissions in Read, plus:

    • Add, Edit and Delete Lists
    • View, Add, Update, and Delete list Items
    • Delete Versions
    • Browse Directories
    • Edit Personal User Information
    • Manage Personal Views
    • Add, Update, or Remove Personal Web Parts
    Owners Full Control     This level includes all available SharePoint permissions

    11 ноября 2014 г. 5:10
  • Тогда меняем дефолтные значения:

    Firstly, not all Members group(that are Created by default) has “Edit” permission level by default.It depends on the Site Template that you have used to Create a Site. But if it is Edit, you must Change it to Contribute to avoid users deleting the entire List or Libraries.

    1. Navigate to Navigate to Site Settings -> “Site Permissions” (under Users and Permissions).

    2.Next, Look for the group that you need to Change the Permission level for. In our case we need to edit “Team Site Members” group’s permission level to Contribute.

    3. Once you find the group, select it using the Checkbox available right next to it.Next in Ribbon select “Edit User Permissions”

    4.In Edit Permissions page uncheck “Edit” permission level and select “Contribute”. Click Ok once done.

    5. Lastly, Verify that default Members group now has “Contribute” permission level assigned to it.



    11 ноября 2014 г. 5:14
  • Максим, извиняюсь за настойчивость и в очередной раз спасибо за помощь. Повторю свой вопрос- как поменять дефолтные привелегии группы участники на всех сайт коллекциях созданных и на всех создаваемых в будущем.
    Дабы избежать очередной путаницы. Буду рад одному ответу- как изменить на вновь создаваемых . И все.
    11 ноября 2014 г. 5:36
  • Максим, извиняюсь за настойчивость и в очередной раз спасибо за помощь. Повторю свой вопрос- как поменять дефолтные привелегии группы участники на всех сайт коллекциях созданных и на всех создаваемых в будущем.
    Думаем в сторону PowerShell.
    11 ноября 2014 г. 5:45
  • Есть один скрипт:

    <#
     
    Example to process all web applications, sites, and webs
     
    Measure-Command {
        Get-SPWebApplication  | Fix-PLEditContribute
    }
     
    Example to process a specific site collection and webs
     
    Measure-Command {
        Get-SPSite http://test/sites/site | Fix-PLEditContributeSite
    }
     
    #>
     
    function Fix-PLEditContribute {
        param (
        [Parameter(Mandatory=$true, HelpMessage="Please provide SPWebApplication object", ValueFromPipeline=$true)]
        $webApplication)
     
        BEGIN {}
     
        PROCESS {
     
            Write-Verbose "Process $($webApplication.DisplayName)"
     
            $webApplication.Sites | Fix-PLEditContributeSite
     
        }
     
        END {}
     
    }
     
    function Fix-PLEditContributeSite {
        param (
        [Parameter(Mandatory=$true, ValueFromPipeline=$true,HelpMessage="Please provide an SPSite object")]
        [Microsoft.SharePoint.SPSite] $site
        )
     
        BEGIN {}
     
        PROCESS {
     
            foreach ($web in $site.AllWebs)
            {
                Write-Verbose "`t$($web.Url)"
                try
                {
                    if (!$web.HasUniquePerm)
                    {
                        Write-Verbose "Web is inheriting permissions, skipping..."
                        continue;
                    }
     
                    $editRole = $web.RoleDefinitions["Edit"]
                    $contributeRole = $web.RoleDefinitions["Contribute"]
     
                    $roleAssignments = $web.RoleAssignments | ? {$_.RoleDefinitionBindings -eq $editRole}
     
                    foreach ($roleAssignment in $roleAssignments)
                    {
                        if ($roleAssignment.RoleDefinitionBindings.Contains($contributeRole))
                        {
                            Write-Verbose "Already contains Contribute, skipping..."
                            continue;
                        }
     
                        $roleAssignment.RoleDefinitionBindings.Add($contributeRole);
                        $roleAssignment.RoleDefinitionBindings.Remove($editRole);
     
                        $roleAssignment.Update()
                    }
     
                    $web.Update()
                }
                finally
                {
                    if ($web)
                    {
                        $web.Dispose()
                    }
                }
            }
     
            $rootWeb = $site.RootWeb
            $editRole = $web.RoleDefinitions["Edit"]
            if ($editRole)
            {
                Write-Verbose "Removing Edit Permission"
                $rootWeb.RoleDefinitions.Delete("Edit")
            }  
     
            $site.Dispose()
     
        }
     
        END {}
    }

    Пробуйте.

    11 ноября 2014 г. 5:52
  • Максим, в очередной раз спасибо. К своему стыду я не стлен в скриптовании. Как я писал в начале у меня нет групп участников где права даны изменить. Может на некоторых узлах незначительных. Я переопределял их разоичными способами. Через различные оснастки управления шариком. К приеру varonis, docave administrator и тд. Если я правильно Вас понял - ваш скрипт переопределит созданные группы. Мой вопрос- как переопредилить по умолчанию!!!!!!! Что бы как только создалась группа участники ей были даны привелегии - совместная работа, а не изменить!!! На любом созданном сайте или сайт коллекции. Спасибо.
    11 ноября 2014 г. 6:28
  • Дальше все плохо...

    Исследования dll source показали  - идет проверка именно на наличие роли Edit на сайт коллекции:

    В SPUtilityInternal.ShouldUseEditRole есть такой код:

    internal static bool ShouldUseEditRole(SPWeb web)
    {
        if (web.RoleDefinitions.GetByTypeNoThrow(SPRoleType.Editor) == null)
        {
            return false;
        }
        return web.UseEditRole;
    }

    Следовательно, если такая роль (Edit) есть, то она будет использоваться по умолчанию. Если такой роли нет - будет использоваться Contribute.

    Так что алгоритм решения данной проблемы такой:

    1. Скриптом (или вручную, или чем хотите) заменяете на всех сайтах роль Edit на Contribute.

    2. Удаляете роль Edit.

    Так как все зашито в dll, то боюсь это единственный вариант решения данной проблемы.

    Надо патчить ядро или удалять роль.

    • Изменено Maxim Shusharin 11 ноября 2014 г. 7:13
    • Помечено в качестве ответа Andrey Osinniy 11 ноября 2014 г. 8:33
    11 ноября 2014 г. 6:52
  • Большое спасибо
    11 ноября 2014 г. 8:34
  • Кстати в Microsoft открыт запрос на исправление этого кода и они подтвердили ошибку, следовательно ждем обновлений, должны исправить.

    Я как понимаю просто забыли вставить в опции коллекции сайтов флаг web.UseEditRole.

    • Изменено Maxim Shusharin 11 ноября 2014 г. 10:29
    • Помечено в качестве ответа Andrey Osinniy 11 ноября 2014 г. 11:56
    11 ноября 2014 г. 10:28
  • Круто. Спасибо
    11 ноября 2014 г. 11:56
  • Та же проблема. SharePoint Online. Нет возможности удалить роль "Изменить" (Edit) - у нее нет кнопки удаления (видимо идет как базовая роль).

    Указанные красным чекбоксы неактивны (нельзя поставить "галку", чтобы удалить).

    Получается, что единственный выход - зайти в саму роль и снять лишние разрешения, т.е. сделать ее фактически копией роли "Совместная работа" (Contribute).

    Зачем мне это нужно? Задача: есть библиотека. Есть "Пользователь 1" с правом редактирования в ней документов. Остальные могут только читать. Так вот, необходимо, чтобы пользователь мог давать право некоторым другим пользователям редактировать какие-нибудь конкретные документы. Сделала роль для этого пользователя, где он может предоставлять права (управлять разрешениями). Но когда он делает "Поделиться" в меню документа, по умолчанию приглашенному пользователю предоставляется право "Изменить" и нигде это поменять нельзя (выбора роли не предлагается). Вот такое окно приглашения:

    Т.е. когда пользователь 1 вводит имя другого пользователя и нажимает поделиться, другой пользователь получает даже более высокие права, чем Пользователь 1 (Изменить, вместо Совместная работа).

    Конечно можно перейти по вкладке Доступ, затем Дополнительно, там попадаем в стандартный интерфейс назначения доступа, и там еще сделав несколько манипуляций, Пользователь 1 наконец-то сможет дать нужные права, но научить делать это простого пользователя почти нереально, он будет использовать только простую форму как на картинке выше.

    Такая форма (без выбора ролей) появляется в новом интерфейсе библиотек (который появился пару месяцев назад). В старом хотя бы можно было нажать "Показать параметры" (Show options) и открывался список выбора роли (правда там по умолчанию тоже была выбрана роль Изменить).

    • Изменено Ella S 6 октября 2016 г. 16:08
    6 октября 2016 г. 15:55