Cần giúp đỡ phân quyền khi đăng nhập

Discussion in 'Xây dựng ứng dụng desktop standalone' started by Ngô Thành Trung, 29/5/17.

  1. Ngô Thành Trung

    Ngô Thành Trung New Member

    Mình có 2 loại user: Admin và Standar
    Giờ mình muốn phân quyền đăng nhập sao cho:
    - Khi đăng nhập user admin thì vào 1 màn hình
    - Khi đăng nhập user standar thì vào màn hình khác
    Vậy mình phải làm thế nào?
    Mình mới làm quen với java. Mong mọi người giúp đỡ. Thanks :)
  2. JackV

    JackV Administrator Staff Member

    Thường thì có hai kiểu làm, kiểu thứ nhất là làm dạng cửa sổ, bạn sẽ có 3 cửa sổ
    - FrameLogin
    - FrameAdmin
    - FrameStandard
    Khi login bạn kiểm tra dc user đó được phân quyền gì thì cho hiện cửa sổ đó lên

    Kiểu thứ 2 là chỉ có một cửa sổ chính, bạn sẽ làm 3 panel
    - PanelLogin
    - PanelAdmin
    - PanelStandard
    Khi login bạn kiểm tra dc user đó được phân quyền gì thì load panel tương ứng vào phần trung tâm của cửa sổ chính
    Ví dụ login của chường trình http://congdongjava.com/forum/threads/java-soft-phần-mềm-quản-lý-dược-phẩm-cộng-Đồng-java.17807/, kỹ thuật thực hiện http://congdongjava.com/forum/threa...-cho-việc-hiện-thị-dialog-để-nhập-liệu.12848/

    Bạn phải tách thành nhiều class để gọi.
  3. Ngô Thành Trung

    Ngô Thành Trung New Member

    Mình đang xem phần mềm nhà thuốc của bạn. Đập vào mắt là cách bố trí package và file rất đẹp. Mình sẽ học hỏi điều này. Hiện tại đang đọc code của bạn (thật ra thì chẳng hiểu gì nhưng có google là sẽ thông hết :) ).
    Dưới đây là file proj của mình. Mình không biết phải viết tiếp như thế nào để kiểm tra phân quyền user. Nhờ bạn giúp dùm mình :)
    Trong MySQL thì có mỗi thế này thôi
    Capture111.PNG

    Attached Files:

  4. JackV

    JackV Administrator Staff Member

    Vậy khi user login thành công thì bạn truy vấn cái class của user là gì để quyết định là hiện thị nội dung nào.
  5. Ngô Thành Trung

    Ngô Thành Trung New Member

    Đơn giản là Class "admin" sẽ được phân quyền vào 1 màn hình khác. Class "MG" cũng sẽ được phân quyền vào màn hình khác...
    Mỗi class 1 màn hình khác nhau đó bạn :)
  6. JackV

    JackV Administrator Staff Member

    Vậy cho mình xem code kiểm tra đăng nhập hiện thị cửa sổ chung và cấu trúc các class của bạn.
  7. Ngô Thành Trung

    Ngô Thành Trung New Member

    Đây bạn ơi :)
    Đang học java nên thô sơ lắm =.+!

    Attached Files:

  8. JackV

    JackV Administrator Staff Member

    Cái đoạn này
    PHP:
                if (rs.next()) {                sqldb "SELECT * FROM userdata";
                    
    rs pst.executeQuery(sqldb);

                    
    String textRoom rs.getString("class");
                    
    String textUser rs.getString("user");
                    
    String textPass rs.getString("pass");

                    if (
    textUser.equals(txtUsername) && textPass.equals(txtPassword) && textRoom.equals("Admin")) {
                        
    DisplayAdmin du = new DisplayAdmin();
                        
    du.setVisible(true);
                    } else {
                        
    JOptionPane.showMessageDialog(null"Sai tên đăng nhập hoặc password!""Lỗi"JOptionPane.ERROR_MESSAGE);
                    }
                }
    Khi mà if (rs.next()) xảy ra thì chúng ta hiểu là có dữ liệu, nghĩa là có record mang đúng username và password đó nên bên trong k cần phải kiểm tra username và pass lại. Bên cạnh đó thi cái else để thông báo sai tên đăng nhập cũng đặt sai chỗ
    PHP:
                if (rs.next()) {
                    
    String textRoom rs.getString("class");
                    if (
    textRoom.equals("Admin")) {
                        
    DisplayAdmin du = new DisplayAdmin();
                        
    du.setVisible(true);
                    } else {
                        
    DisplayMg dm = new DisplayMg();
                        
    dm.setVisible(true);
                    }

                    
    dispose();
                } else {
                    
    JOptionPane.showMessageDialog(null"Sai tên đăng nhập hoặc password!""Lỗi"JOptionPane.ERROR_MESSAGE);
                }
    Chạy thử xem nhé, mình chỉ xem logic thôi chứ k xác định tính đúng sai
    Ngô Thành Trung likes this.
  9. Ngô Thành Trung

    Ngô Thành Trung New Member

    Chạy được rồi bạn ơi :) Cám ơn bạn :)

Chia sẻ trang này