Mogli wrote:
> Hej Allesammen.
>
> Jeg har to spg. som jeg håber i kan hjælpe mig med.
>
> 1: Hvordan laver jeg et adgangssystem, så en bruger validere sig med
> brugernavn / password, som ligger i en db, og på baggrund af dette kommer
> programmet frem, og viser kun de ting vedkommende har rettigheder til. Enten
> så de enkelte menupunkter er helt væk, eller bare skraveret væk. F.eks, så
> kan en administrator komme til alle dele af programmet, imens en almindelig
> bruger kun kan printe/lukke/søge.....
Godt spørgsmål. Mit bud er at du kigger på javax.swing.Action.
De registrerede Action objekter skal så have kaldt setEnabled(true/false)
i henhold til brugerens rettigheder. Dette kunne fx. gøres ved login eller
i hvert fald før det bliver muligt at udføre funktionen.
Et lille eksempel, hvor kun brugeren ulrikm har lov til "paste":
public class ActionDemo
{
public static void main( String[] args )
{
String userID =
javax.swing.JOptionPane.showInputDialog("Please provide login id");
javax.swing.JFrame frame
= new javax.swing.JFrame();
javax.swing.JEditorPane editorPane
= new javax.swing.JEditorPane();
javax.swing.text.StyledEditorKit
editorKit = new javax.swing.text.StyledEditorKit();
editorPane.setEditorKit( editorKit );
javax.swing.Action[] actions = editorKit.getActions();
for( int i = 0; i < actions.length; i++ )
{
if( actions[i].getValue(javax.swing.Action.NAME).equals(
javax.swing.text.DefaultEditorKit.pasteAction ) )
{
// kun ulrikm har adgang til paste
actions[i].setEnabled( userID.equals("ulrikm") );
}
}
frame.getContentPane().setLayout( new java.awt.BorderLayout( ));
frame.getContentPane().add( new javax.swing.JScrollPane(editorPane),
java.awt.BorderLayout.CENTER );
frame.pack();
frame.show();
}
}
> 2: Da det skal være et flerbrugersystem, som der efter planen skal køre på
> én server og ex. antal klienter. Hvordan klarer man så det med at de ikke
> tilgår / ændrer i de samme oplysninger på samme tid. Er det her et
> Statepattern ville være godt, eller findes der en anden løsning. Der må
> gerne komme et eksempel med
Den slags styres gerne så tæt på området, hvor det kan gå galt - mao. med
transaktioner på serveren.
Ulrik Magnusson