Topic: Запрет редактирования записи в зависимости от того кто ее создал

Здравствуйте!!! Каждая новая запись создается разными людьми! В табле гриде есть столбец ФИО!  Хочу чтобы человек не мог редактировать записи не созданные им, а только свои (на кнопку редактирования)!!!

Re: Запрет редактирования записи в зависимости от того кто ее создал

Сделал для вас пример реализации

Post's attachments

Attachment icon Login with protect own records.zip 38.69 kb, 501 downloads since 2015-01-09 

Dmitry.

3 (edited by Augsberger 2015-01-09 22:20:56)

Re: Запрет редактирования записи в зависимости от того кто ее создал

Спасибо Дмитрий! Сделал! Только теперь сам  не могу редактировать записи (как администратор) Нужно чтобы администратор базы мог редактировать все записи... короче имел все права и просмотра и удаления записей....Проект сделан с входом через логин и пароль по вашим примерам...есть работники есть администратор??? Где чего дописать???

Re: Запрет редактирования записи в зависимости от того кто ее создал

Доработал пример, теперь при создании пользователя можно поставить галочку, что он администратор.
Также только администратор может добавлять новых пользователей.

Post's attachments

Attachment icon Login with protect own records and admin.zip 39.43 kb, 1319 downloads since 2015-01-10 

Dmitry.

Re: Запрет редактирования записи в зависимости от того кто ее создал

Спасибо в очередной раз!!! Все заработало!!!!
Какие планы в ближайшее время по улучшениям??? Что будет добавлено???

Re: Запрет редактирования записи в зависимости от того кто ее создал

Пока работаю над тем, чтобы при изменении структуры базы данных, данные не уничтожались.
Здесь можно скачать бета версию
http://myvisualdatabase.com/forum/viewtopic.php?id=781

Dmitry.

Re: Запрет редактирования записи в зависимости от того кто ее создал

Как правильно в коде

//процедура запрета редактирования не своих записей
procedure Form1_Button2_OnClick (Sender: string; var Cancel: boolean);
var
    sIdUser: string;
begin
    if isAdmin then Exit;
    sIdUser:=SQLExecute('SELECT id_Users FROM Zapisi WHERE id='+IntToStr(Form1.TableGrid1.dbItemID));
    if sIdUser<>IntToStr(idUser) then
    begin
        Cancel := True;
        ShowMessage('Вы не можете редактироватить созданную не вами запись.');
    end;
end;

вписать Конкретную фамилию, которая может редактировать запись ...то есть является исключением

Re: Запрет редактирования записи в зависимости от того кто ее создал

//процедура запрета редактирования не своих записей
procedure Form1_Button2_OnClick (Sender: string; var Cancel: boolean);
var
    sIdUser: string;
begin
    if isAdmin then Exit;
    if sCurrentUser = 'Иванов'  then Exit;

    sIdUser:=SQLExecute('SELECT id_Users FROM Zapisi WHERE id='+IntToStr(Form1.TableGrid1.dbItemID));
    if sIdUser<>IntToStr(idUser) then
    begin
        Cancel := True;
        ShowMessage('Вы не можете редактироватить созданную не вами запись.');
    end;
end;

где sCurrentUser - это переменная, в которой хранится имя текущего пользователя

Dmitry.

Re: Запрет редактирования записи в зависимости от того кто ее создал

DriveSoft wrote:

Сделал для вас пример реализации



admin zdrastvuyte. podskajite kak akno zdelat shtob on atkrilsa na polniy ekran?

Re: Запрет редактирования записи в зависимости от того кто ее создал

procedure Form1_OnShow (Sender: string; Action: string);
begin
    Form1.WindowState := wsMaximized;
end;
Dmitry.

Re: Запрет редактирования записи в зависимости от того кто ее создал

spasiba