2012-11-13 14 views
5

Muszę podać role (w tym rolę członka), dane członkowskie i foldery użytkowników niektórym użytkownikom OpenID przed oni po raz pierwszy logują się do mojej witryny Plone. To znaczy, muszę programowo dodać użytkowników OpenID do mojej witryny Plone. portal_registration.addMember nie może dodać użytkownika OpenID. plone.openid ma własną wtyczkę PAS, która nie tworzy obiektów członkowskich. Co mogę zrobić, aby można było je odtwarzać w sterowniku? Najczęstszym sposobem na to jest ręczne zalogowanie się do użytkownika OpenID, a następnie dodanie do niego ról, danych członkowskich i udostępnianie po. Jakkolwiek, historia użytkownika nie jest powtarzalna programowo.Jak programowo dodawać użytkowników OpenID do witryny Plone

Odpowiedz

0

Jedyne, co powinno mieć znaczenie, to identyfikator użytkownika wygenerowany dla każdego użytkownika. Powinno być możliwe wcześniejsze utworzenie zwykłych członków za pomocą identyfikatorów użytkowników pasujących do adresów URL otwartych identyfikatorów, przypisywanie ich do ról, a następnie używanie openid (tylko) jako alternatywnej metody uwierzytelniania dla tych użytkowników.

Aktualizacja: Jak komentuje Chris poniżej, to nie jest możliwe, aby dodać użytkowników z adresu URL jako ich id przez Plone UI, ale muszą one być tworzone bezpośrednio do folderu przez użytkowników PAS ZMi (Zope Management Interface).

+0

Załóżmy, że mam ServiceX z prekonfigurowanymi kontami użytkowników (uprawnienia specyficzne dla aplikacji i prawa dostępu do widoków w miejscu). Jaka jest nazwa użytkownika/openid_key/cokolwiek powinienem zapytać użytkowników? Następnie łączę wstępnie skonfigurowane konto usługi z tym kontem OpenID. Czy użytkownicy korzystają z Google lub Yahoo OpenID? Czy dostawcy OpenID zwracają adres e-mail, abym mógł połączyć wstępnie skonfigurowane konto? – Whome

+0

Obawiam się, że odpowiedź brzmi "nie". Obecna domyślna implementacja OpenID w Plone po prostu przypisuje adres URL identyfikatora OpenID jako identyfikator użytkownika. Adres URL nie może zawierać adresu e-mail i jest inny dla każdego dostawcy. Aby to wspierać, należy zaktualizować plone.openid, aby obsługiwał rozszerzenie OpenID Attribute Exchange. –

+0

Próbowałem już tworzyć członków z adresów URL OpenID, ale adresy URL zawierają znaki, które nie są poprawne w identyfikatorach użytkownika. Jak wspomniano w pytaniu, portal_registration.addMember nie pobierał adresu URL dla identyfikatora użytkownika. Doceniam kogoś, kto w końcu odpowiada. Ale nie znajdując odpowiedzi podczas pracy nad aplikacją wymagającą tego dwa lata temu, porzuciłem używanie plone.openid i jestem teraz w innej pracy. To wszystko jest dyskusyjne, ponieważ OpenID nie żyje, dostawca OpenID, którego używaliśmy, zwinął się, a nadchodzący plone.login będzie obsługiwał OAuth. Sposób wiązania uwierzytelnień OAuth z obiektami członkowskimi to jednak inna sprawa. –

Powiązane problemy