Права доступа

Здравствуйте.

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

И ещё. Как сделать, чтобы ответственный имел доступ изменять активность, ему назначенную?

Нравится

2 комментария

Здравствуйте.

Если это уже существующие записи, то доступ на них нужно распространять скриптом.
Что-то вроде:

declare @UserName nvarchar(250)
set @UserName = 'ИмяПользователя' --которому предоставляется доступ
declare @Account nvarchar(250)
set @Account = 'ИмяКонтрагента' --по которому предоставляется доступ на активности
declare @AdminUnitID uniqueidentifier
set @AdminUnitID = (select top 1 Id from SysAdminUnit where Name = @UserName)
declare @Reading int
set @Reading = 1 --0 - запрет чтения, 1 - разрешение чтения, 2 - разрешение раздачи прав доступа на чтения
declare @Writing int 
set @Writing = 1 --0 - запрет изменения, 1 - разрешение изменения, 2 - разрешение раздачи прав доступа на изменение
declare @Deleting int 
set @Deleting = 1 --0 - запрет удаления, 1 - разрешение удаления, 2 - разрешение раздачи прав доступа на удаление
 
if (@AdminUnitID is null)
begin
return
end
 
INSERT INTO SysActivityRight([Id], [RecordId], [SysAdminUnitId], [Operation], [RightLevel])
select newid(), a.Id, @AdminUnitID, 0, @Reading
from Activity a
where a.AccountId = (select Id from Account where Name = @Account)
 
INSERT INTO SysActivityRight([Id], [RecordId], [SysAdminUnitId], [Operation], [RightLevel])
select newid(), a.Id, @AdminUnitID, 1, @Writing
from Activity a
where a.AccountId = (select Id from Account where Name = @Account)
 
INSERT INTO SysActivityRight([Id], [RecordId], [SysAdminUnitId], [Operation], [RightLevel])
select newid(), a.Id, @AdminUnitID, 2, @Deleting
from Activity a
where a.AccountId = (select Id from Account where Name = @Account)

Максим, спасибо.

Показать все комментарии