Прежде чем приступить к описанию решений авторизации пользователей, пара слов о структуре разграничения прав в CMS MODx.
Документы В MODx могут быть объединены в произвольное количество групп.
Группы могут иметь общие документы (могут пересекаться).
Существует две совершенно не связанные категории пользователей - менеджеры и веб-пользователи.
Первые авторизуются через менеджерскую форму и имеют возможность управлять сайтом через админку.
Каждому менеджеру может быть назначена определённая роль - уровень доступа.
Менеджеры могут быть объединены в группы.
Вторые авторизуются через страницы сайта и получают доступ к тем группам документов которые им разрешены.
Веб пользователи также объединяются в группы. Разделяя пользователей на группы можно предоставлять им различную функциональность, например редакторы новостей, модераторы объявлений или комментариев на страницах сайта, пользователи имеющие доступ к закрытой информации и пр...
Статья об авторизации на сайте modxcms.com
Для авторизации веб пользователей в CMS MODx существет два готовых решения:
1) Встроенный сниппет WebLogin. Возможностей у него не очень много, но с простыми задачами он справляется.
Для полноценного функционирования к этому сниппету прилагается ещё два - WebSignup и WebChangePwd.
2) Сниппет WebLoginPE - значительно более гибкий и функциональный.
Пример авторизации пользователей на базе сниппета WebLogin:
Создаём чанк {{login}}
[[WebLogin? &loginhomeid=`xx1,xx2,xx3,xx4` &tpl=`weblogin_tpl`]]
xx1,xx2,xx3,xx4 - id документов.
Перевод описания сниппета WebLogin:
# Параметры:
# &loginhomeid - (опционально)
# Переадресовывает пользователя на первую страницу из списка
# в соответствии с правами доступа.
# Если id не указан - на текущую.
#
# &logouthomeid - (опционально)
# id документа загружаемого при выходе из системы.
#
# &pwdreqid - (опционально)
# id документа загружаемого после запроса пользователем нового пароля
#
# &pwdactid - (опционально)
# id документа загружаемого после активации пользователем нового пароля
#
# &logintext - (опционально)
# Текст отображаемый на кнопке Login (для встроенной формы)
#
# &logouttext - (опционально)
# Текст отображаемый на кнопке Logout (для встроенной формы)
#
# &tpl - (опционально)
# Название чанка или id документа используемого как шаблон.
#
# See weblogin.tpl for more information
#
Примеры:
[[WebLogin? &loginhomeid=`8` &logouthomeid=`1`]]
[[WebLogin? &loginhomeid=`8,18,7,5` &tpl=`Login`]]
Содержимое чанка weblogin_tpl
<!-- #declare:separator <hr> -->
<!-- login form section-->
<form method="post" name="loginfrm" action="[+action+]" style="margin: 0px; padding: 0px;">
<input type="hidden" value="[+rememberme+]" name="rememberme">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td><b>Пользователь:</b></td>
<td><input type="text" name="username" tabindex="1" onkeypress="return webLoginEnter(document.loginfrm.password);" size="8" style="width: 150px;" value="[+username+]" /></td>
</tr>
<tr>
<td><b>Пароль:</b></td>
<td><input type="password" name="password" tabindex="2" onkeypress="return webLoginEnter(document.loginfrm.cmdweblogin);" style="width: 150px;" value="" /></td>
</tr>
<tr>
<td><label for="chkbox" style="cursor:pointer">Запомнить меня: </label></td>
<td>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top"><input type="checkbox" id="chkbox" name="chkbox" tabindex="4" size="1" value="" [+checkbox+] onclick="webLoginCheckRemember()" /></td>
<td align="right">
<input type="submit" value="[+logintext+]" name="cmdweblogin" /></td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2"><a href="#" onclick="webLoginShowForm(2);return false;">Напомнить пароль</a></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
<hr>
<!-- log out hyperlink section
--> <a href='[+action+]'>[+logouttext+]</a>
<hr>
<!-- Password reminder form section -->
<form name="loginreminder" method="post" action="[+action+]" style="margin: 0px; padding: 0px;">
<input type="hidden" name="txtpwdrem" value="0" />
<table border="0">
<tr>
<td>Введите emal,который использовался при регистрации:</td>
</tr>
<tr>
<td><input type="text" name="txtwebemail" size="24" /></td>
</tr>
<tr>
<td align="right"><input type="submit" value="Submit" name="cmdweblogin" />
<input type="reset" value="Cancel" name="cmdcancel" onclick="webLoginShowForm(1);" /></td>
</tr>
</table>
</form>
Помещаем вызов чанка {{login}} на страницу авторизации или в блок отображаемый на страницах сайта.
Posts: 4
Reply #5 on : Срд Июль 20, 2011, 17:56:13
Posts: 4
Reply #4 on : Срд Апрель 13, 2011, 11:26:05
Posts: 4
Reply #3 on : Сбт Сентябрь 18, 2010, 21:17:47
Posts: 1
Reply #2 on : Чтв Август 20, 2009, 21:18:57
Posts: 4
Reply #1 on : Чтв Август 20, 2009, 17:44:14
Write a comment