Авторизация веб пользователей - сниппет WebLogin

Прежде чем приступить к описанию решений авторизации пользователей, пара слов о структуре разграничения прав в CMS MODx.
Документы В MODx могут быть объединены в произвольное количество групп.
Группы могут иметь общие документы (могут пересекаться).

Существует две совершенно не связанные категории пользователей - менеджеры и веб-пользователи.
Первые авторизуются через менеджерскую форму и имеют возможность управлять сайтом через админку.
Каждому менеджеру может быть назначена определённая роль - уровень доступа.
Менеджеры могут быть объединены в группы.

Вторые авторизуются через страницы сайта и получают доступ к тем группам документов которые им разрешены.
Веб пользователи также объединяются в группы. Разделяя пользователей на группы можно предоставлять им различную функциональность, например редакторы новостей, модераторы объявлений или комментариев на страницах сайта, пользователи имеющие доступ к закрытой информации и пр...
Статья об авторизации на сайте modxcms.com

Для авторизации веб пользователей в CMS MODx существет два готовых решения:
1) Встроенный сниппет WebLogin. Возможностей у него не очень много, но с простыми задачами он справляется.
Для полноценного функционирования к этому сниппету прилагается ещё два - WebSignup и WebChangePwd.
2) Сниппет WebLoginPE - значительно более гибкий и функциональный.


Пример авторизации пользователей на базе сниппета WebLogin:
Создаём чанк {{login}}

  1.  
  2. [[WebLogin? &loginhomeid=`xx1,xx2,xx3,xx4` &tpl=`weblogin_tpl`]]
  3.  
xx1,xx2,xx3,xx4 - id документов.
Перевод описания сниппета WebLogin:
  1.  
  2.  
  3. # Параметры:
  4. # &loginhomeid - (опционально)
  5. # Переадресовывает пользователя на первую страницу из списка
  6. # в соответствии с правами доступа.
  7. # Если id не указан - на текущую.
  8. #
  9. # &logouthomeid - (опционально)
  10. # id документа загружаемого при выходе из системы.
  11. #
  12. # &pwdreqid - (опционально)
  13. # id документа загружаемого после запроса пользователем нового пароля
  14. #
  15. # &pwdactid - (опционально)
  16. # id документа загружаемого после активации пользователем нового пароля
  17. #
  18. # &logintext - (опционально)
  19. # Текст отображаемый на кнопке Login (для встроенной формы)
  20. #
  21. # &logouttext - (опционально)
  22. # Текст отображаемый на кнопке Logout (для встроенной формы)
  23. #
  24. # &tpl - (опционально)
  25. # Название чанка или id документа используемого как шаблон.
  26. #
  27. # See weblogin.tpl for more information
  28. #
  29. Примеры:
  30.  
  31. [[WebLogin? &loginhomeid=`8` &logouthomeid=`1`]]
  32.  
  33. [[WebLogin? &loginhomeid=`8,18,7,5` &tpl=`Login`]]
  34.  
  35.  

Содержимое чанка weblogin_tpl
  1.  
  2. <!-- #declare:separator <hr> -->
  3. <!-- login form section-->
  4. <form method="post" name="loginfrm" action="[+action+]" style="margin: 0px; padding: 0px;">
  5. <input type="hidden" value="[+rememberme+]" name="rememberme">
  6. <table border="0" cellspacing="0" cellpadding="0">
  7. <tr>
  8. <td>
  9. <table border="0" cellspacing="0" cellpadding="0">
  10. <tr>
  11. <td><b>Пользователь:</b></td>
  12. <td><input type="text" name="username" tabindex="1" onkeypress="return webLoginEnter(document.loginfrm.password);" size="8" style="width: 150px;" value="[+username+]" /></td>
  13. </tr>
  14. <tr>
  15. <td><b>Пароль:</b></td>
  16. <td><input type="password" name="password" tabindex="2" onkeypress="return webLoginEnter(document.loginfrm.cmdweblogin);" style="width: 150px;" value="" /></td>
  17. </tr>
  18. <tr>
  19. <td><label for="chkbox" style="cursor:pointer">Запомнить меня:&nbsp; </label></td>
  20. <td>
  21. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  22. <tr>
  23. <td valign="top"><input type="checkbox" id="chkbox" name="chkbox" tabindex="4" size="1" value="" [+checkbox+] onclick="webLoginCheckRemember()" /></td>
  24. <td align="right">
  25. <input type="submit" value="[+logintext+]" name="cmdweblogin" /></td>
  26. </tr>
  27. </table>
  28. </td>
  29. </tr>
  30. <tr>
  31. <td colspan="2"><a href="#" onclick="webLoginShowForm(2);return false;">Напомнить пароль</a></td>
  32. </tr>
  33. </table>
  34. </td>
  35. </tr>
  36. </table>
  37. </form>
  38. <hr>
  39. <!-- log out hyperlink section -->
  40. <a href='[+action+]'>[+logouttext+]</a>
  41. <hr>
  42. <!-- Password reminder form section -->
  43. <form name="loginreminder" method="post" action="[+action+]" style="margin: 0px; padding: 0px;">
  44. <input type="hidden" name="txtpwdrem" value="0" />
  45. <table border="0">
  46. <tr>
  47. <td>Введите emal,который использовался при регистрации:</td>
  48. </tr>
  49. <tr>
  50. <td><input type="text" name="txtwebemail" size="24" /></td>
  51. </tr>
  52. <tr>
  53. <td align="right"><input type="submit" value="Submit" name="cmdweblogin" />
  54. <input type="reset" value="Cancel" name="cmdcancel" onclick="webLoginShowForm(1);" /></td>
  55. </tr>
  56. </table>
  57. </form>
  58.  
  59.  

Помещаем вызов чанка {{login}} на страницу авторизации или в блок отображаемый на страницах сайта.

Последнее изменение документа: 22 Сентябрь 2009
ваы
Posts: 4
Comment
уцкцу
Reply #5 on : Срд Июль 20, 2011, 17:56:13
вавыавы
serg
Posts: 4
Comment
Автоматическая Авторизация
Reply #4 on : Срд Апрель 13, 2011, 11:26:05
как можно сделать что бы после того как человек зарегистрировался на сайте он автоматически становился авторизованным?
bigbobah
Posts: 4
Comment
Re: Авторизация веб пользователей - сниппет WebLogin
Reply #3 on : Сбт Сентябрь 18, 2010, 21:17:47
а как установить текст, который выводится в сообщении о неверном пароле/логине?
admin
Posts: 1
Comment
Re: Авторизация веб пользователей - сниппет WebLogin
Reply #2 on : Чтв Август 20, 2009, 21:18:57
Для дополнительных,собственных полей при регистрации, необходимо использовать WebLoginPE, ну или написать собственный сниппет ) .
По WebLoginPE вот здесь есть не плохая статья http://denvor.ru/art/modx/webloginpe.htm
4e
Posts: 4
Comment
Re: Авторизация веб пользователей - сниппет WebLogin
Reply #1 on : Чтв Август 20, 2009, 17:44:14
А кастомные поля ввода можно прикрутить к регистрации, или для этого только wlpe надо юзать?

Write a comment

  • Required fields are marked with *.

If you have trouble reading the code, click on the code itself to generate a new random code.