Criando usuários no FB/IB

Veremos neste artigo, como criar usuários no FB/IB através de uma aplicação Delphi. Utilizaremos o IBSecurityService, componente da paleta Interbase Admin, que encapsula os serviços de administração de usuários, com o qual podemos adicionar, excluir ou alterar os dados dos usuários do FB/IB.

Crie uma nova aplicação Delphi e adicione os seguintes componentes: um PageControl, um ListView, dois GroupBox, cinco Bitbtns, seis Labels  e seis Edits. Configure os componentes no formulário tomando por base a Figura 1 e 2.

05-06pic01.JPG
Figura 1. Cadastro de Usuários.

05-06pic02.JPG
Figura 2. Dados do Usuário

Para o ListView, adicione duas colunas, através da propriedade Columns, altere para vsReport a propriedade ViewStyle e GridLines para True. Para os Edits que receberão a senha e confirmação digite na propriedade PasswordChar: “*”.

Adicione o IBSecurityService (InterBase Admin), dê um duplo clique no componente para abrir o editor e configure-o conforme a Figura 3.

05-06pic03.JPG
Figura 3. Configurando o IBSecurityServices

Crie uma procedure com o nome de CarregarUser, e implemente-a com o seguinte código:

 var
  i: Integer;
  aLista: TListItem;
begin
  ListView1.Clear;
  with IBSecurityService1
do
 
begin
    Active := True;
    DisplayUsers;
    for i := 0 to UserInfoCount - 1 do
   
begin
      with UserInfo[i]
do
     
begin
        aLista := ListView1.Items.Add;
        aLista.Caption := UserName;
        aLista.SubItems.Add(FirstName + ' ' +
          MiddleName + ' ' + LastName);
      end;
    end;
    Active := False;
  end;
 

Após “chame” a procedure no evento OnShow do formulário. Rode a aplicação e veja os usuários do banco mostrados na ListView (Figura 4).

05-06pic04.JPG
Figura 4.
Usuários do banco carregados na ListView

Vamos codificar a aplicação, para manipular os usuários. No botão Adicionar, digite o seguinte código: 

Tipo := 0;
PageControl1.ActivePage := TabSheet2; 

Tipo é uma variável (do tipo byte) declarada no formulário, que irá identificar os tipos de ações realizadas (adicionar= 0, alterar=1 e excluir=2), por isso adicione o mesmo código para os botões Alterar e Excluir, não esquecendo de alterar o valor da variável Tipo.

Para o botão Alterar devemos ainda incluir o seguinte código, para preencher os Edits com os valores dos dados do usuário selecionado no ListView

with IBSecurityService1 do
begin
  Active := True;
  DisplayUser(ListView1.Selected.Caption);
  Edit1.Text := UserInfo[0].UserName;
  Edit2.Text := '';
  Edit3.Text := '';
  Edit4.Text := UserInfo[0].FirstName;
  Edit5.Text := UserInfo[0].MiddleName;
  Edit6.Text := UserInfo[0].LastName;
end


O código anterior, o método DisplayUser, recebe como parâmetro o nome do usuário, e disponibiliza os seus dados, que são preenchidos nos respectivos Edits. Note que estamos limpando os Edits da senha e confirmação, pois queremos alterar os dados do usuário. Para o botão OK iremos utilizar o seguinte código: 

with IBSecurityService1 do
begin
  UserName := Edit1.Text;
  Password := Edit2.Text;
  FirstName := Edit4.Text;
  MiddleName := Edit5.Text;
  LastName := Edit6.Text;
  Active := True;
  case Tipo
of
    0: AddUser;
    1: ModifyUser;
    2: DeleteUser;
  end;
  ShowMessage('Informação salva com sucesso');
  CarregarUser;
end;
 

No código anterior, passamos os valores dos Edits, para as respectivas propriedades do IBSecurityServices, após verificamos qual o tipo de ação e chamamos o método adequado.

Podemos tratar exceções, para o caso da tentativa de inserção de usuário com o mesmo nome através do seguinte código: 

{ Declare em uses IB }
except
  on E: EIBInterbaseError do
    raise Exception.Create(
      'Já existe um usuário com esse nome');
end;
 

Você pode adaptar o exemplo, verificando se a senha e a confirmação têm os mesmos valores, verificar se foi escolhido um usuário no ListView para alterar ou excluir, entre outras modificações.

Vimos neste artigo, como é simples manipular usuários do FB/IB através do IBSecurityServices, ficando sua aplicação totalmente independente das ferramentas de administração do banco de dados.

Forte abraço a todos!

Para fazer o download do aplicativo e seu código-fonte, clique aqui.