Help Thảo luận tìm chức năng chỉ được đăng nhập theo list email cho trước

tremocoivo

Private
Tham gia
02/06/2015
Bài viết
18
Được Like
11
Mình đang làm 1 diễn đàn cho cộng đồng nhỏ. Và ở dạng kín, thành viên chỉ được login bằng email đã được cấp.
Yêu cầu:
- Admin tạo danh sách thành viên theo list email cho trước và phân quyền được truy cập vào 1 vài forum tạo sẵn (ví dụ team A, team B...)
- thành viên Team A tiến hành login bằng email của mình và tự động liên kết đến user mà admin đã tạo, và user này chỉ xem được bài viết ở Team A.
- Hoặc thành viên Team A login bằng email và tạo username/pass. Với Email login này được quyền truy cập vào bài viết ở Team A.

Khó khăn:
- Sử dụng chức năng login with google thì nếu user đã tồn tại (admin tạo trước) thì buộc phải login bằng user/pass và chọn chức năng External Account. (trong khi thành viên đó chưa biết user/pass đăng nhập là gì).

Giải pháp:
Admin tạo user/pass với email cho trước và diễn đàn tự động gửi mail đến email đó bao gồm user/pass và cách thức đăng nhập cho thành viên đó biết.

Mình mới suy nghĩ ra vậy, ai rành có thể thảo luận thêm để đưa ra cách tối ưu và tiện nhất.
 
  • Like
Reactions: THB

Jindo_Katori

FirstSergeant
Tham gia
01/03/2015
Bài viết
1,454
Được Like
1,193
Cách của bác làm cho mọi thứ trở nên phức tạp quá
Về cơ bản, nếu mình hiểu đúng ý bác thì chỉ cần làm thế này:
1. Tạo 01 site bình thường
2. Cho các thành viên đăng nhập sử dụng như 01 site bình thường
3. Tạo 02 Node A - B và phân quyền
4. Tạo 02 Group Member A - B tương ứng và phân quyền
Sau đó bác muốn add thằng nào vào Group A thì add, thằng nào vào Group B thì tùy
 

THB

Founder
Thành viên BQT
Tham gia
25/02/2015
Bài viết
6,651
Được Like
3,934
cái này bác @Jindo_Katori nói có vẻ đúng.
Nhưng mục đích của @tremocoivo là để làm gì? nói rõ hơn tý nửa sẽ có giải pháp ngay.
 

tremocoivo

Private
Tham gia
02/06/2015
Bài viết
18
Được Like
11
Cách của bác làm cho mọi thứ trở nên phức tạp quá
Về cơ bản, nếu mình hiểu đúng ý bác thì chỉ cần làm thế này:
1. Tạo 01 site bình thường
2. Cho các thành viên đăng nhập sử dụng như 01 site bình thường
3. Tạo 02 Node A - B và phân quyền
4. Tạo 02 Group Member A - B tương ứng và phân quyền
Sau đó bác muốn add thằng nào vào Group A thì add, thằng nào vào Group B thì tùy
Cái này thì đơn giản rồi.
Nhưng mục đích của mình là thế này:

Diễn đàn này dành riêng cho cộng đồng khoảng 500 thành viên trong công ty. Và mục đích trước tiên chỉ là nội bộ cho 500 user đó thôi. Và chỉ có 1 vài Node là Public và cho tất cả mọi người đăng ký.
Số lượng hiện tại khoảng 500 được chia nhỏ thành các team, mỗi team khoảng 25 user nằm trong 1 node với tên của Team, và chỉ có thành viên của team đó mới xem được bài viết.
Bây giờ diễn đàn tạo ra mình k muốn thành viên nào đăng ký xong lại phải vào phân quyền. Cho nên muốn 1 giải pháp là mỗi team có 1 danh sách email của thành viên team. Mình chỉ cần Add user kèm theo email đó và phân quyền chính xác. Và từ sau ai login vào thì tự động được add vào node đó và thảo luận mà k cần phải chờ phân quyền từ admin nữa.
 
  • Like
Reactions: THB

seoben

Gefreiter
Tham gia
13/05/2016
Bài viết
75
Được Like
73
Cái này cần code thêm, bạn liên hệ bác nào rành về xenforo và coder là ổn ngay!
 
  • Like
Reactions: THB

THB

Founder
Thành viên BQT
Tham gia
25/02/2015
Bài viết
6,651
Được Like
3,934
xin chào @tremocoivo vấn đề của bạn.
1. chỉ có 1 vài Node là Public và cho tất cả mọi người đăng ký
----> cái này tạo 1 4rum bình thường là ok.
2. mỗi team khoảng 25 user nằm trong 1 node với tên của Team ( mình gọi Team A nhé)
-----> cái này bạn tạo user và email cho các thành viên luôn ( cả pass luôn nhé) rồi đưa họ login khỏi cần đăng ký luôn. Trong ACP bạn tạo 1 group TEAM A. và set quyền cho group được thấy cái NODE của team đó và những bài viết của TEAM A trong node A luôn.
3. tương tự cho TEAM B.
Đó là cách tận dụng chức năng có sẳn của xenforo, ngoài ra còn có thể code thêm như ý bạn nhưng tốn phí.
demo: http://aircop.vn/
user: team A pass: 123456 bạn sẽ ko thấy category cũng như box của team B
user: team B pass: 123456 cái này thì ngược lại nhé

box 1 team A.jpg
box 1 team B.jpg
box 2 team A.jpg
box 2 team B.jpg
box.png
cau hinh teamA thay node A.jpg
TAO GROUP A.jpg
TAO GROUP B.jpg
tao user va pass team a.jpg
team A.jpg
team B.jpg
user teamA.jpg
user teamB.jpg
 

seoben

Gefreiter
Tham gia
13/05/2016
Bài viết
75
Được Like
73
Ý tưởng này hay, sau này mình rảnh mình cũng vooc thử dev phát.

1 adon nhập list mail

Nhập list mail từng bảng 1 (theo nhóm)

list1
{
mail@A
mail@B
mail@C
...
}
list2
{
mail@111
mail@222
mail@333
...
}
....

Mình sẽ sét
list1: quyền kiểu 1
list2: quyền kiểu 2
....

OK!

Khi vô 1 node sẽ check mail này thuộc list nào rồi => quyền của nó (tức là cho phép, hay không cho phép )

....


Không biết hướng của mình đúng ý chủ thớt ko nhỉ!
 

tremocoivo

Private
Tham gia
02/06/2015
Bài viết
18
Được Like
11
Cảm ơn mọi người đã nhiệt tình hướng dẫn.
Về phần phân quyền user theo Node thì mình làm được. Chỉ có cái khó khăn ban đầu là phần login bằng email (cụ thể là login bằng gmail) nếu email đó đã đăng ký thì user login lần đầu bằng google thì sẽ yêu cầu liên kết tài khoản (extenal account) trong khi user đó chưa biết user/pass để login vào bấm chọn extenal account link.

Còn chức năng Admin tạo user xong thì tự động gửi thông tin username/pass vào email đã đăng ký thì xenforo có làm được ko nhỉ? Cách này dễ hơn.
 

thebigsize

MasterCorporal
Tham gia
04/03/2015
Bài viết
327
Được Like
250
Cảm ơn mọi người đã nhiệt tình hướng dẫn.
Về phần phân quyền user theo Node thì mình làm được. Chỉ có cái khó khăn ban đầu là phần login bằng email (cụ thể là login bằng gmail) nếu email đó đã đăng ký thì user login lần đầu bằng google thì sẽ yêu cầu liên kết tài khoản (extenal account) trong khi user đó chưa biết user/pass để login vào bấm chọn extenal account link.

Còn chức năng Admin tạo user xong thì tự động gửi thông tin username/pass vào email đã đăng ký thì xenforo có làm được ko nhỉ? Cách này dễ hơn.
Cái này đơn giản mình nói thế này để bạn làm nha. Bạn tạo listener để thay đổi các function mxh. Khi user login bằng mxh sẽ check nếu mail đó có trên hệ thống thì gọi hàm send mail vào, get data theo địa chỉ mail. Send user và pass cho member, hoặc gửi link thay đổi mật khẩu vào mail họ. Vậy là xong
 

tremocoivo

Private
Tham gia
02/06/2015
Bài viết
18
Được Like
11
Cái này đơn giản mình nói thế này để bạn làm nha. Bạn tạo listener để thay đổi các function mxh. Khi user login bằng mxh sẽ check nếu mail đó có trên hệ thống thì gọi hàm send mail vào, get data theo địa chỉ mail. Send user và pass cho member, hoặc gửi link thay đổi mật khẩu vào mail họ. Vậy là xong

hihi mình không rành về code nên mới nhờ trờ giúp từ chuyên gia tư vấn.
 

Jindo_Katori

FirstSergeant
Tham gia
01/03/2015
Bài viết
1,454
Được Like
1,193
Mình thấy bác tự làm khó vấn đề ra.
Bác cứ tạo ra các acc có sẳn, pass quăng cho trưởng nhóm, yêu cầu tự đổi sau khi login
Còn khoảng gmail bác yêu cầu của ai người đó tự chọn External là được
 

Top Bottom