Avatar billede trp79 Nybegynder
24. november 2004 - 19:56 Der er 4 kommentarer og
1 løsning

Redigering af brugere.

Hejsa
I forbindelse med min brugeradministration har jeg understående editUser.jsp. Mit problem er, at jeg har en userList.jsp side, hvor alle brugernavne gøres til links, og når der så klikkes på en bruger, så sendes den valgte brugeres informationer til editUser.jsp via get-metode. editUser.jsp benytter så en brugerbean og sætter selv brugerens attributterne(brugernavn, email, password) i textfelterne. Men når min userList.jsp side er en sidde alle kan se, så er det jo ikke så smart at man kan se alle brugeres attributter, så mit spørgsmål er hvordan jeg smartes laver det om.
Hvis det smarteste er, at nøjes med at sende brugernavnet til editUser.jsp, hvordan kan jeg så lave en gøre brug af en bønne, som oprettes ud fra en select i databasen?
Et alternativ til ovenstående kunne vel være, hvis man kan skjule parametrene for brugeren på anden vis (post går jo ikke, for hvis en brugeren kigger i html koden kan de jo se parametrene).

Håber jeg har udtrykt mig forståeligt, på forhånd tak.

Mvh
Torben

editUser.jsp:
<%@ page contentType="text/html;charset=windows-1252"%>
<%@ page language="java" import="vindmolle.DbHandler"%>
<jsp:useBean id="userBean" class="vindmolle.UserBean" scope="session"/>
<jsp:setProperty name="userBean" property="username"/>
<jsp:setProperty name="userBean" property="email"/>
<jsp:setProperty name="userBean" property="password"/>

<html>
<head><title>Redigering af brugeren: <%= userBean.getUsername() %></title></head>
<body>

<h1>Redigering af brugeren: <%= userBean.getUsername() %></h1>
<% 
      //Find den indloggede brugers rolle
    String edittorRole = "";
    if(request.isUserInRole("superadmin")) edittorRole = "superadmin";
    else if(request.isUserInRole("admin")) edittorRole = "admin";
    else edittorRole = "user";

    DbHandler dbHandler = new DbHandler();
    dbHandler.open();
    if(dbHandler.kanRedigerBruger(userBean.getUsername(), edittorRole, request.getRemoteUser()))
    {
%>
      <form action="editUser.jsp" method="get">
      <table>
      <tr>
        <td>Brugernavn:</td>
        <td><input type="text" name="username" value="<%= userBean.getUsername() %>">
        </td>
      </tr>
      <tr>
        <td>Epost:</td>
        <td><input type="text" name="email" value="<%= userBean.getEmail() %>"></td>
      </tr>
      <tr>
        <td>Adganskode</td>
        <td><input type="text" name="password" value="<%= userBean.getPassword() %>"></td>
      </tr>
      <tr>
        <td></td>
        <td><input type="submit" name="handling" value="rediger bruger"></td>
      </tr>
      </table>
      </form>
      <font color="blue">Der sendes automatisk en e-mail til brugeren om, at han nu er redigeret og derfor også hans brugernavn og password.</font><br>
      <font color="red">
      <%
        String handling = request.getParameter("handling");
        if ("rediger bruger".equals(handling)) {
          if (userBean.redigerBruger()) {
            %>Succecfuld redigering - <%
          }
          else {
            %>Bruger kunne ikke redigeres. <%
          }
        }
      %>
      <%= userBean.getMessage() %>
      </font>
<%
    }
    else
    {
%>    Du har ikke rettigheder til at redigere denne bruger!
<%
    }
%>

<br>
<a href="userList.jsp">userList</a>
</body>
</html>
Avatar billede arne_v Ekspert
24. november 2004 - 20:00 #1
Jeg ville kun sende brugernavn og så lade editUser.jsp selv hente de
øvrige informationer.

For det er jo nok ikke hensigtsmæssigt med password i URL'er.
Avatar billede trp79 Nybegynder
24. november 2004 - 20:33 #2
Det lyder fint. Men hvordan kommer jeg så lidt videre... Jeg spørger fordi jeg ikke er helt sikker på, hvordan det fungerer med sådan en bean. Hvis jeg nu bare sender brugernavnet over, så hvis jeg har forstået det rigtigt, så bliver der oprettet en bean, hvor setBrugernavn bliver kaldt og det vises i tekstfelter? Er det så muligt at kalde en metode i beanen, der henter de andre oplysninger og sætter disse attributter i tekstfelterne - fx med noget ala:
<jsp:setProperty name="userBean" property=getEmail(brugernavn)/>? eller hvordan vil man gribe sådan noget an?

Håber ikke jeg har misforstået det helt...
Avatar billede arne_v Ekspert
24. november 2004 - 20:37 #3
Måske:

<jsp:setProperty name="userBean" property="*"/>
<%
userBean.findMissingFieldsInDatabase();
%>
Avatar billede trp79 Nybegynder
25. november 2004 - 07:48 #4
Det er super Arne - det virker nu, så smid du bare et svar.

Tak for hjælpen atter engang :)

Mvh
Torben
Avatar billede arne_v Ekspert
25. november 2004 - 08:04 #5
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester