Topic: Отображение информации в гриде в зависимости от прав пользователей

Здравствуйте! Интересует примерчик, в котором: 1) имеются пользователи с определенными правами (чтение. запись, удаление и т.п.) но помимо этих прав каждый прикреплен к определенной должности, которая реализована таким же образом как и стандартные права (директор, зам.директора, начальник1, начальник2, начальник3, подчиненный1, подчиненный2, подчиненный3 и т.д. (так же ставится галочка ДА/НЕТ напротив определенной должности)). 2) Имеется грид в котором сохраняют определенную информацию все эти пользователи и как сделать так, что бы информацию от директора видели только его зам. и начальники, а обычным подчиненным её не было видно?

Re: Отображение информации в гриде в зависимости от прав пользователей

В таком виде вроде работает, но идет привязка к имени в столбце Выдал, что не есть хорошо, так как фамилии могут поменяться и придется снова переписывать код

procedure Form1_search_OnClick (Sender: string; var Cancel: boolean);
var
s, d: string;
begin
// Работники отдела
sUser := frmLogin.ComboBox1.Text; // remember username
s := VarToStr( SQLExecute('SELECT otdel FROM users WHERE (login = ''' + sUser + ''');') );
d := VarToStr( SQLExecute('SELECT rabotnik FROM users WHERE (login = ''' + sUser + ''');') );
if ((s='1') and (d='1')) then Form1.TableGrid1.dbFilter := '(vidal <> ("Иван Иванов")) and (vidal <> ("Петр Петров")) and (vidal <> ("Николай Сидоров"))';
end;

Хотелось бы, что бы была привязка не к именам а к Чекбоксам, которые определяют является ли юзер директором или нет.... например когда работники не видят то что пишут директора и их замы, но не знаю как оформить сам фильтр таблицы......

procedure Form1_search_OnClick (Sender: string; var Cancel: boolean);
var
s, d, a, b : string;
begin
// Работники отдела
sUser := frmLogin.ComboBox1.Text; // remember username
s := VarToStr( SQLExecute('SELECT otdel FROM users WHERE (login = ''' + sUser + ''');') );
d := VarToStr( SQLExecute('SELECT rabotnik FROM users WHERE (login = ''' + sUser + ''');') );

// Директор
a := VarToStr( SQLExecute('SELECT kioc FROM users WHERE (login = ''' + sUser + ''');') );
b := VarToStr( SQLExecute('SELECT director FROM users WHERE (login = ''' + sUser + ''');') );
if ((s='1') and (d='1')) then Form1.TableGrid1.dbFilter := 'ЧТО СЮДА ПИСАТЬ?';
end;

Re: Отображение информации в гриде в зависимости от прав пользователей

К сожалению подобного примера нет, его разработка займет слишком много времени.


По второму вопросу, к сожалению не очень понимаю его.

Dmitry.

Re: Отображение информации в гриде в зависимости от прав пользователей

Понятно, спасибо