Re: Авторизация при запуске программы. Права пользователей.
спс
My Visual Database → Russian → Авторизация при запуске программы. Права пользователей.
У вас ошибка в примере с проектом. Админ имеет все права-реализовано. User не админ, но имеет права админа на чекбокс- не реализовано. user2- не имеет ни прав админа, ни прав управлять чекбоксом.
У вас при включенной галочке у User не может управлять чекбоксом в записи админа. Надо чтобы User имел права админа на чекбокс, и мог управлять им в любой записи. Жду вашего ответа. Заранее спс.
До меня что-то очередь как-то не доходит
Раз уже начали доделайте исключения чек бокса из администрирования. Я думаю и др будет интересно. Это-же останется.
Я смотрю вы всем отвечаете кроме меня.
Есть еще вопросик по правам пользователя. Как сделать чтобы после нажатия на чек- бокс пользовательне мог редактировать и свои записи . Заранее спс. Жду с нетерпением вашего ответа.
Есть еще вопросик по правам пользователя. Как сделать чтобы после нажатия на чек- бокс пользовательне мог редактировать и свои записи . Заранее спс. Жду с нетерпением вашего ответа.
Пожалуйста, формулируйте вопрос полностью.
Сейчас у меня каждый пользователь может редактировать только свои записи, кроме админа (админ может все). Нужно чтобы после нажатия чек бокса и сохранения, обычный пользователь (который может редактировать только свои записи) не мог их редактировать. те есть оперативный журнал, после окончания смены, пользователь который заполнял этот журнал в течении смены, допустим с 8,00 до 16,00 за этот день после сдачи смены не мог их изменить. Но только за этот день и за эту смену, тк он ее уже сдал.
.
Игоревич
К сожалению не могу дать простого ответа, необходимо изучать проект и как организована работа со сменами, чтобы что то посоветовать, но это уже выходит за рамки поддержки, я могу помочь только с конкретными вопросами.
Я постараюсь чуть позже более понятно разьяснить на вашем примере.
Подскажите пож как срыть меню (Инструменты) в программе, чтобы они видны были только администратору. Заранее спс за ответ.
Игоревич, по моему лучше в Вашем случае реализовать в проекте ведение логов произведенных операций, лог сможет например просматривать только админ. И если юзверь начинает шалить и менять записи, вносить недостоверные сведения так как это выгодно ему, делаем выборки и ата-та, ата-та.
Но все же задача стоит срыть от юзера и показать админу.
Подскажите пож как срыть меню (Инструменты) в программе, чтобы они видны были только администратору. Заранее спс за ответ.
Как скрыть меню, можно посмотреть здесь
http://myvisualdatabase.com/forum/viewtopic.php?id=1091
Но чтобы дать конкретный скрипт для вашего случая, необходимо видеть скрипт проекта.
var
sUser: string = '';
idUser: integer;
isAdmin: boolean = False;
isCheckBox: boolean = False;
sHello: string;
/// BAR CHART //////
{== BAR CHART ===========================================================================================}
{== BAR CHART ===========================================================================================}
procedure formIzm_CheckBox1_OnKeyUp (Sender: string; var Key: Word; Shift, Alt, Ctrl: boolean);
begin
if (isCheckBox) and (formIzm.bOK.dbGeneralTableId>0) then
SQLExecute('UPDATE TabOtkaz SET StatusOtkaza = ' + formIzm.CheckBox1.sqlValue + ' WHERE id = '+IntToStr(formIzm.bOK.dbGeneralTableId));
end;
procedure formIzm_CheckBox1_OnMouseUp (Sender: string; MouseLeft, MouseRight, MouseMiddle: boolean; Shift, Alt, Ctrl: boolean; X, Y: Integer);
begin
if (isCheckBox) and (formIzm.bOK.dbGeneralTableId>0) then
SQLExecute('UPDATE TabOtkaz SET StatusOtkaza = ' + formIzm.CheckBox1.sqlValue + ' WHERE id = '+IntToStr(formIzm.bOK.dbGeneralTableId));
end;
procedure frmLogin_bLogin_OnClick (Sender: string; var Cancel: boolean);
var
s: string;
begin
// SQL-запрос на регистрацию пользователя и пароль
s := SQLExecute('SELECT count(id) FROM users WHERE (id = ''' + IntToStr(frmLogin.cbLogin.dbItemID) + ''') AND (password = ''' + frmLogin.edPassword.Text + ''');');
// SQL-запрос найден логин и пароль
if (s <> '0') and (s<>'') then
begin
sUser := frmLogin.cbLogin.Text; // запомнить имя пользователя
idUser := frmLogin.cbLogin.dbItemID; // запомнить идентификатор пользователя в базе
// Administrator?
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.bUsers.Visible:=False;
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.Button5.Visible:=False;
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.Button1.Visible:=False;
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.Button4.Visible:=False;
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.Button6.Visible:=False;
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.bDelete.Visible:=False;
// Can change CheckBox?
if SQLExecute ('SELECT CheckBox FROM users WHERE id = '+IntToStr(idUser)) = '1' then isCheckBox := True;
FormGlavn.Caption := 'User: ' + sUser;
frmLogin.Close; // Закрыть главную форму
end else MessageDlg('Некорректный пароль', mtError, mbOk, 0); // сообщение если неверный пароль
end;
procedure SavePersonal_OnShow (Sender: string; Action: string);
begin
if Action = 'NewRecord' then SavePersonal.ComboBox1.dbItemID := idUser ;
end;
// мероприятия закрытия окна для входа
procedure frmLogin_OnClose (Sender: string; Action: string);
begin
// если пользователь не определен, и Пользователь закрывает окно входа в систему, закройте главную форму
if sUser='' then FormGlavn.Close;
end;
procedure formIzm_OnShow (Sender: string; Action: string);
begin
begin
if Action = 'NewRecord' then formIzm.cbUser.dbItemID := idUser ;
end;
// удаление двойного клика по подчиненной таблице
begin
FormGlavn.TableGrid2.dbPopupMenu.Items[0].Enabled:= False;
end;
end;
// защитить от удаления
procedure FormGlavn_bDelete_OnClick (Sender: string; var Cancel: boolean);
var
sIdUser: string;
begin
if isAdmin then Exit;
sIdUser:=SQLExecute('SELECT id_users FROM TabOtkaz WHERE id='+IntToStr(FormGlavn.TableGrid2.dbItemID));
if sIdUser<>IntToStr(idUser) then
begin
Cancel := True;
ShowMessage('У вас нет разрешения удалять записи, которые не принадлежат вам.');
end;
end;
// защитить от редактирования
procedure formIzm_bOK_OnClick (Sender: string; var Cancel: boolean);
begin
if isAdmin then Exit;
if idUser<>formIzm.cbUser.dbItemID then
begin
Cancel := True;
ShowMessage('У вас нет разрешения редактировать записи, которые не принадлежат вам.');
end;
end;
procedure FormGlavn_OnShow (Sender: string; Action: string);
begin
begin
frmLogin.edPassword.PasswordChar := '*';
frmLogin.ShowModal; // Форма для входа
FormGlavn.mniAbout.OnClick := @MenuClickAbout;
end;
// удаление двойного клика по главной таблице
begin
FormGlavn.TableGrid2.dbPopupMenu.Items[0].Enabled:= False;
end;
{== BAR CHART ===========================================================================================}
end;
procedure MenuClickAbout (Sender: string); // click in About menu item
begin
frmAbout.ShowModal;
end;
procedure FormGlavn_TableGrid2_OnCellClick (Sender: string; ACol, ARow: Integer);
begin
zapolnenie();
end;
procedure FormGlavn_TableGrid2_OnKeyUp (Sender: string; var Key: Word; Shift, Alt, Ctrl: boolean);
begin
zapolnenie();
end;
procedure zapolnenie ();
var
idS : string ;
begin
idS := inttostr(FormGlavn.TableGrid2.dbItemID) ;
FormGlavn.Obekt.text := SQLExecute('SELECT ob_name FROM tabobekt WHERE id =(SELECT id_tabobekt FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.Edit2.Text := SQLExecute('SELECT Name_Uzel FROM TabUselOborud WHERE id =(SELECT id_TabUselOborud FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.VneshProyavlOtkaza.Text := SQLExecute('SELECT Proyav_name FROM TabProyavlen WHERE id =(SELECT id_TabProyavlen FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.LitsoObnaruj.Text := SQLExecute('SELECT Obnarug_name FROM TabObnarug WHERE id =(SELECT id_TabObnarug FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.MetodUstraneniya.Text := SQLExecute('SELECT Metod_name FROM TabMetod WHERE id =(SELECT id_TabMetod FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.UsloviyaObnaruj.Text := SQLExecute('SELECT Usl_name FROM TabUslovia WHERE id =(SELECT id_TabUslovia FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.VidOborudovaniya.Text := SQLExecute('SELECT Vid_name FROM TabVid WHERE id =(SELECT id_TabVid FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.DefektNomer.Text := SQLExecute('SELECT DEF№ FROM tabotkaz WHERE id = '+idS ) ;
FormGlavn.Edit4.Text := SQLExecute('SELECT ZAPAS FROM tabotkaz WHERE id = '+idS ) ;
FormGlavn.Komentarii.Text := SQLExecute('SELECT Primechanie FROM tabotkaz WHERE id = '+idS ) ;
FormGlavn.Edit3.Text := SQLExecute('SELECT OtcLico FROM tabotkaz WHERE id = '+idS ) ;
end;
// открытие файла руководство пользователя
procedure FormGlavn_Button3_OnClick (Sender: string; var Cancel: boolean);
begin
OpenFile(ExtractFilePath(Application.ExeName) +'HelpR.chm');
end;
// нажатие скрытой кнопки
procedure FormGlavn_Button10_OnClick (Sender: string; var Cancel: boolean);
begin
FormGlavn.Button10.Click
end;
// дубликат таблицы
procedure FormGlavn_Button2_OnClick (Sender: string; var Cancel: boolean);
begin
if FormGlavn.TableGrid2.dbItemID <> -1 then
begin
frmPersons.TableGrid1.dbFilter := 'id_TabOtkaz='+FormGlavn.TableGrid2.sqlValue;
frmPersons.TableGrid1.dbUpdate;
end else
begin
frmPersons.TableGrid1.dbFilter := '';
frmPersons.TableGrid1.dbUpdate;
end;
// отключенная кнопка пошаговые действия при не выделенной строке в таблице
begin
if FormGlavn.TableGrid2.SelectedRow = -1 then Cancel := True;
end;
end;
// Окрашивание строк в главной таблицы
procedure FormGlavn_TableGrid2_OnChange (Sender: string);
var
i,c,f,r: integer;
begin
c := FormGlavn.TableGrid2.RowCount - 1;
f := FormGlavn.TableGrid2.Columns.Count - 1;
for i := 0 to c do
begin
if FormGlavn.TableGrid2.Cells[0,i]='Нет'
THEN
for r := 0 to f do
FormGlavn.TableGrid2.Cell[r,i].Color := $008080FF; // закрашивание всей строки
end;
end;
// администрирование подчиненной таблицы
// защитить от редактирования подчиненной таблицы
procedure formIzm_Button2_OnClick (Sender: string; var Cancel: boolean);
var
sIdUser: string;
begin
if isAdmin then Exit;
sIdUser:=SQLExecute('SELECT id_users FROM TabDeystvPerson WHERE id='+IntToStr(formIzm.TableGrid1.dbItemID));
if sIdUser<>IntToStr(idUser) then
begin
Cancel := True;
ShowMessage('У вас нет разрешения редактировать записи, которые не принадлежат вам.');
end;
end;
// защитить от удаления подчиненной таблицы
procedure formIzm_Button3_OnClick (Sender: string; var Cancel: boolean);
var
sIdUser: string;
begin
if isAdmin then Exit;
sIdUser:=SQLExecute('SELECT id_users FROM TabDeystvPerson WHERE id='+IntToStr(formIzm.TableGrid1.dbItemID));
if sIdUser<>IntToStr(idUser) then
begin
Cancel := True;
ShowMessage('У вас нет разрешения удалять записи, которые не принадлежат вам.');
end;
end;
begin
// Начала проверьте, есть ли пользователь, администратор базы данных
// если нет, создать учетную запись администратора с именем пользователя admin и паролем admin
if SQLExecute('SELECT count(id) FROM users;') = '0' then
begin
SQLExecute('INSERT INTO users (login, password, admin) VALUES ("admin", "admin", 1);');
frmLogin.cbLogin.dbItemID:=1;
frmLogin.edPassword.Text := 'admin';
end;
frmLogin.Button1.Default := True;
formIzm.cbUser.Enabled:=false;
end.
var
sUser: string = '';
idUser: integer;
isAdmin: boolean = False;
isCheckBox: boolean = False;
sHello: string;
/// BAR CHART //////
{== BAR CHART ===========================================================================================}
{== BAR CHART ===========================================================================================}
procedure formIzm_CheckBox1_OnKeyUp (Sender: string; var Key: Word; Shift, Alt, Ctrl: boolean);
begin
if (isCheckBox) and (formIzm.bOK.dbGeneralTableId>0) then
SQLExecute('UPDATE TabOtkaz SET StatusOtkaza = ' + formIzm.CheckBox1.sqlValue + ' WHERE id = '+IntToStr(formIzm.bOK.dbGeneralTableId));
end;
procedure formIzm_CheckBox1_OnMouseUp (Sender: string; MouseLeft, MouseRight, MouseMiddle: boolean; Shift, Alt, Ctrl: boolean; X, Y: Integer);
begin
if (isCheckBox) and (formIzm.bOK.dbGeneralTableId>0) then
SQLExecute('UPDATE TabOtkaz SET StatusOtkaza = ' + formIzm.CheckBox1.sqlValue + ' WHERE id = '+IntToStr(formIzm.bOK.dbGeneralTableId));
end;
procedure frmLogin_bLogin_OnClick (Sender: string; var Cancel: boolean);
var
s: string;
begin
// SQL-запрос на регистрацию пользователя и пароль
s := SQLExecute('SELECT count(id) FROM users WHERE (id = ''' + IntToStr(frmLogin.cbLogin.dbItemID) + ''') AND (password = ''' + frmLogin.edPassword.Text + ''');');
// SQL-запрос найден логин и пароль
if (s <> '0') and (s<>'') then
begin
sUser := frmLogin.cbLogin.Text; // запомнить имя пользователя
idUser := frmLogin.cbLogin.dbItemID; // запомнить идентификатор пользователя в базе
// Administrator?
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.bUsers.Visible:=False;
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.Button5.Visible:=False;
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.Button1.Visible:=False;
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.Button4.Visible:=False;
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.Button6.Visible:=False;
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.bDelete.Visible:=False;
// Can change CheckBox?
if SQLExecute ('SELECT CheckBox FROM users WHERE id = '+IntToStr(idUser)) = '1' then isCheckBox := True;
FormGlavn.Caption := 'User: ' + sUser;
frmLogin.Close; // Закрыть главную форму
end else MessageDlg('Некорректный пароль', mtError, mbOk, 0); // сообщение если неверный пароль
end;
procedure SavePersonal_OnShow (Sender: string; Action: string);
begin
if Action = 'NewRecord' then SavePersonal.ComboBox1.dbItemID := idUser ;
end;
// мероприятия закрытия окна для входа
procedure frmLogin_OnClose (Sender: string; Action: string);
begin
// если пользователь не определен, и Пользователь закрывает окно входа в систему, закройте главную форму
if sUser='' then FormGlavn.Close;
end;
procedure formIzm_OnShow (Sender: string; Action: string);
begin
begin
if Action = 'NewRecord' then formIzm.cbUser.dbItemID := idUser ;
end;
// удаление двойного клика по подчиненной таблице
begin
FormGlavn.TableGrid2.dbPopupMenu.Items[0].Enabled:= False;
end;
end;
// защитить от удаления
procedure FormGlavn_bDelete_OnClick (Sender: string; var Cancel: boolean);
var
sIdUser: string;
begin
if isAdmin then Exit;
sIdUser:=SQLExecute('SELECT id_users FROM TabOtkaz WHERE id='+IntToStr(FormGlavn.TableGrid2.dbItemID));
if sIdUser<>IntToStr(idUser) then
begin
Cancel := True;
ShowMessage('У вас нет разрешения удалять записи, которые не принадлежат вам.');
end;
end;
// защитить от редактирования
procedure formIzm_bOK_OnClick (Sender: string; var Cancel: boolean);
begin
if isAdmin then Exit;
if idUser<>formIzm.cbUser.dbItemID then
begin
Cancel := True;
ShowMessage('У вас нет разрешения редактировать записи, которые не принадлежат вам.');
end;
end;
procedure FormGlavn_OnShow (Sender: string; Action: string);
begin
begin
frmLogin.edPassword.PasswordChar := '*';
frmLogin.ShowModal; // Форма для входа
FormGlavn.mniAbout.OnClick := @MenuClickAbout;
end;
// удаление двойного клика по главной таблице
begin
FormGlavn.TableGrid2.dbPopupMenu.Items[0].Enabled:= False;
end;
{== BAR CHART ===========================================================================================}
end;
procedure MenuClickAbout (Sender: string); // click in About menu item
begin
frmAbout.ShowModal;
end;
procedure FormGlavn_TableGrid2_OnCellClick (Sender: string; ACol, ARow: Integer);
begin
zapolnenie();
end;
procedure FormGlavn_TableGrid2_OnKeyUp (Sender: string; var Key: Word; Shift, Alt, Ctrl: boolean);
begin
zapolnenie();
end;
procedure zapolnenie ();
var
idS : string ;
begin
idS := inttostr(FormGlavn.TableGrid2.dbItemID) ;
FormGlavn.Obekt.text := SQLExecute('SELECT ob_name FROM tabobekt WHERE id =(SELECT id_tabobekt FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.Edit2.Text := SQLExecute('SELECT Name_Uzel FROM TabUselOborud WHERE id =(SELECT id_TabUselOborud FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.VneshProyavlOtkaza.Text := SQLExecute('SELECT Proyav_name FROM TabProyavlen WHERE id =(SELECT id_TabProyavlen FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.LitsoObnaruj.Text := SQLExecute('SELECT Obnarug_name FROM TabObnarug WHERE id =(SELECT id_TabObnarug FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.MetodUstraneniya.Text := SQLExecute('SELECT Metod_name FROM TabMetod WHERE id =(SELECT id_TabMetod FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.UsloviyaObnaruj.Text := SQLExecute('SELECT Usl_name FROM TabUslovia WHERE id =(SELECT id_TabUslovia FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.VidOborudovaniya.Text := SQLExecute('SELECT Vid_name FROM TabVid WHERE id =(SELECT id_TabVid FROM tabotkaz WHERE id = '+idS+')' ) ;
FormGlavn.DefektNomer.Text := SQLExecute('SELECT DEF№ FROM tabotkaz WHERE id = '+idS ) ;
FormGlavn.Edit4.Text := SQLExecute('SELECT ZAPAS FROM tabotkaz WHERE id = '+idS ) ;
FormGlavn.Komentarii.Text := SQLExecute('SELECT Primechanie FROM tabotkaz WHERE id = '+idS ) ;
FormGlavn.Edit3.Text := SQLExecute('SELECT OtcLico FROM tabotkaz WHERE id = '+idS ) ;
end;
// открытие файла руководство пользователя
procedure FormGlavn_Button3_OnClick (Sender: string; var Cancel: boolean);
begin
OpenFile(ExtractFilePath(Application.ExeName) +'HelpR.chm');
end;
// нажатие скрытой кнопки
procedure FormGlavn_Button10_OnClick (Sender: string; var Cancel: boolean);
begin
FormGlavn.Button10.Click
end;
// дубликат таблицы
procedure FormGlavn_Button2_OnClick (Sender: string; var Cancel: boolean);
begin
if FormGlavn.TableGrid2.dbItemID <> -1 then
begin
frmPersons.TableGrid1.dbFilter := 'id_TabOtkaz='+FormGlavn.TableGrid2.sqlValue;
frmPersons.TableGrid1.dbUpdate;
end else
begin
frmPersons.TableGrid1.dbFilter := '';
frmPersons.TableGrid1.dbUpdate;
end;
// отключенная кнопка пошаговые действия при не выделенной строке в таблице
begin
if FormGlavn.TableGrid2.SelectedRow = -1 then Cancel := True;
end;
end;
// Окрашивание строк в главной таблицы
procedure FormGlavn_TableGrid2_OnChange (Sender: string);
var
i,c,f,r: integer;
begin
c := FormGlavn.TableGrid2.RowCount - 1;
f := FormGlavn.TableGrid2.Columns.Count - 1;
for i := 0 to c do
begin
if FormGlavn.TableGrid2.Cells[0,i]='Нет'
THEN
for r := 0 to f do
FormGlavn.TableGrid2.Cell[r,i].Color := $008080FF; // закрашивание всей строки
end;
end;
// администрирование подчиненной таблицы
// защитить от редактирования подчиненной таблицы
procedure formIzm_Button2_OnClick (Sender: string; var Cancel: boolean);
var
sIdUser: string;
begin
if isAdmin then Exit;
sIdUser:=SQLExecute('SELECT id_users FROM TabDeystvPerson WHERE id='+IntToStr(formIzm.TableGrid1.dbItemID));
if sIdUser<>IntToStr(idUser) then
begin
Cancel := True;
ShowMessage('У вас нет разрешения редактировать записи, которые не принадлежат вам.');
end;
end;
// защитить от удаления подчиненной таблицы
procedure formIzm_Button3_OnClick (Sender: string; var Cancel: boolean);
var
sIdUser: string;
begin
if isAdmin then Exit;
sIdUser:=SQLExecute('SELECT id_users FROM TabDeystvPerson WHERE id='+IntToStr(formIzm.TableGrid1.dbItemID));
if sIdUser<>IntToStr(idUser) then
begin
Cancel := True;
ShowMessage('У вас нет разрешения удалять записи, которые не принадлежат вам.');
end;
end;
begin
// Начала проверьте, есть ли пользователь, администратор базы данных
// если нет, создать учетную запись администратора с именем пользователя admin и паролем admin
if SQLExecute('SELECT count(id) FROM users;') = '0' then
begin
SQLExecute('INSERT INTO users (login, password, admin) VALUES ("admin", "admin", 1);');
frmLogin.cbLogin.dbItemID:=1;
frmLogin.edPassword.Text := 'admin';
end;
frmLogin.Button1.Default := True;
formIzm.cbUser.Enabled:=false;
end.
Игоревич
Замените пожалуйста данный участок кода
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.bUsers.Visible:=False;
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.Button5.Visible:=False;
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.Button1.Visible:=False;
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.Button4.Visible:=False;
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.Button6.Visible:=False;
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True else FormGlavn.bDelete.Visible:=False;
на
if SQLExecute ('SELECT admin FROM users WHERE id = '+IntToStr(idUser)) = '1' then isAdmin := True;
FormGlavn.bUsers.Visible:=isAdmin;
FormGlavn.Button5.Visible:=isAdmin;
FormGlavn.Button1.Visible:=isAdmin;
FormGlavn.Button4.Visible:=isAdmin;
FormGlavn.Button6.Visible:=isAdmin;
FormGlavn.bDelete.Visible:=isAdmin;
FormGlavn.mniOptions.Visible := isAdmin;
Подскажите пож. как сделать, если пользователь открывает запись главной таблицы которую он не может редактировать она была не активной. Текстовое поле
Многострочное поле Выпадающий список фото файл
Подскажите пож. как сделать, если пользователь открывает запись главной таблицы которую он не может редактировать она была не активной. Текстовое поле
Многострочное поле Выпадающий список фото файл
Приложите пожалуйста ваш проект.
можно его вам выслать на почтовый ящик
можно его вам выслать на почтовый ящик
да, на support@drive-software.com
Выслал вам проект на почтовый ящик
Письмо получил огромное вам спс
My Visual Database → Russian → Авторизация при запуске программы. Права пользователей.
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi