Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Настройки для авторизованных пользователей

26.06.2013, 01:14
tengy
TengyStudio

Зарегистрирован:
2009-04-15
Сообщений: 37

Помогите советом, пожалуйста.
Версия 5.0
Всё у меня криво с этим проектом, поиск по сайту не работает, проект в разработке уже больше 4-х месяцев, глюков целая коллекция.
Вероятно, почти все разрешимо, но с одной из проблем, я даже не понимаю, в какую сторону думать.

У каждого пользователя из определенной группы есть собственный раздел на сайте, который этот пользователь может редактировать.
Соответственно, когда пользователь находится в собственном разделе, у него сверху появляется панель "просмотр | редактирование | еще" слева и его ник справа.
Пользователь, назовем его хозяин 440 нажимает в верхней панели "редактирование" и редактирует свой раздел в публичной части сайта, т.е. /netcat/index.php?catalogue=1&sub=440&cc=840, т.к. админки он побаивается, в /netcat/admin/#object.list(840) не залезает.
После редактирования своего раздела пользователь начинает шастать по сайту, что вполне объяснимо, т.к. он видит публичную часть сайта с дизайном, меню, кликабельными картинками и т.п.
Но все страницы этого сайта вместо контента выдают ему только одну фразу "У вас нет доступа для осуществления операции". При этом меню сверху в других разделах нет, выйти из редактирования в режим просмотра хозяин 440 уже не может.
Что делать? Может быть есть какое-то простое решения, чтобы если пользователь покидает свой раздел, его выкидывало в публичную часть сайта?
Задача у меня глобальная - сделать "просто, как в одноклассниках, или вконтакте". Я понимаю, что так просто нереально, для этой простоты нужен бюджет невероятный, но, например, в ДЛЕ это элементарно реализовано, у разработчика сайта об этом голова не болит.

Можно, конечно, отдельный мануал для пользователя написать, но ... в данном случае имеется в виду не хозяин сайта и не его менеджеры или веб-мастер, а посторонний пользователь, коих предполагается зарегистрировать пару сотен и права им по разделам расписать.
Т.е. это кто попало с моей точки зрения - и кулхацкер и тупой ламер, а с точки зрения хозяина сайта - сплошь милые интеллигентные люди.

Пожалуйста, подскажите, как упростить пользователям редактирование собственных разделов. Вдруг есть какой-то элементарный способ, которого я просто в упор не вижу?

Всегда существует простое легкое для понимания неправильное решение (с)
26.06.2013, 07:56
ipm
Ильин Павел

Зарегистрирован:
2012-10-12
Сообщений: 386

Здравствуйте.
Вам нужно внимательно проверить/настроить права на сайте.
Если у каждого отдельного пользователя есть свой раздел, который он может редактировать, то остальные разделы, он может только просматривать, насколько я понял. Если он продолжает находиться в режиме редактирования, то это естественно, что у него нет прав для осуществления операции, иначе он сможет редактировать разделы других пользователей. Так вот, чтобы он смог нормально продолжать просматривать сайт, то тут масса вариантов, как это сделать, главное понимать, что конкретно требуется. Можно, например, использовать специальный макет дизайна для этих целей, в котором просто не будет ссылок, с помощью которых можно попасть в закрытые разделы. В настройках доступа (разделы/компоненты)можно по всякому выстраивать права. Можно пользователей добавлять в разные группы, а каждой отдельной группе присваивать необходимые права. А можно просто пользователю, после редактирования, переключаться в режим просмотра)

Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
26.06.2013, 12:25
tengy
TengyStudio

Зарегистрирован:
2009-04-15
Сообщений: 37

Спасибо!!!
Отдельное спасибо за то, что Вы поняли, что я здесь сумбурно понаписала.
Права выставлены правильно, на это моей паранойи в аккурат хватает.
Пользователю, конечно можно переключаться, но на то он и пользователь, чтобы всё перепутать, что-нибудь нужное случайно снести и обвинить разработчика в интимных отношениях процессов на его пользовательском компьютере в момент просмотра сайтав ауте
Т.е. пользователя переключать надо принудительно, сам он никуда переключаться не в состоянии.
А с макетом идея отличная! Можно же сделать макет без меню, с надписью типа "Уважаемый UserID=, Вы так изумительно все отредактировали и если Вам и самому всё нравится, предлагаем Вам вернуться в публичную часть sub=440 для любования своими успехами".

А имеет смысл группы сделать в моем случае? У каждого пользователя права только на один раздел и ничего общего больше нет. Или макет можно для группы настроить?
Да, конечно, пошла читать мануалы, но если там совершенно ничего нет для решения этой задачи, вернусь опятьзлой

Всегда существует простое легкое для понимания неправильное решение (с)
26.06.2013, 21:48
ipm
Ильин Павел

Зарегистрирован:
2012-10-12
Сообщений: 386

Макет для группы настроить нельзя, его можно подключить к определённым разделам/лу, к которым/ому назначаются определённые права. Либо в группе выставляются права на раздел.

Ещё, как вариант, можно сделать так, чтобы после редактирования своего раздела, пользователя автоматически перекидывало в публичную часть, после того, как он нажмёт на конечную кнопку 'сохранить'.

Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
27.06.2013, 11:51
tengy
TengyStudio

Зарегистрирован:
2009-04-15
Сообщений: 37

Цитата:
Ещё, как вариант, можно сделать так, чтобы после редактирования своего раздела, пользователя автоматически перекидывало в публичную часть, после того, как он нажмёт на конечную кнопку 'сохранить'.
Если не сложно, пожалуйста, ткните носом, где искать.
Это в компонентах, которые пользователи правят, шаблоны действий -> Действие после добавления объекта?

Всегда существует простое легкое для понимания неправильное решение (с)
27.06.2013, 12:54
ipm
Ильин Павел

Зарегистрирован:
2012-10-12
Сообщений: 386

Да, нужно вставить код в действие после добавления/изменения.
Вот такой код используется в одном проекте (в данном случае он вставлен в действие после изменения), после изменения объекта пользователю открывается страница по этому адресу

Код:
";
header("location:/tenders/registration/registration_$AUTH_USER_ID.html");

echo "


Обратите внимание, код для 4 версии.
Чтобы его использовать в пятёрке, нужно обернуть ещё в <? ?>.

Т.е примерно вот так (если я не ошибаюсьулыбка)

Код:
<?
header("location:/tenders/registration/registration_$AUTH_USER_ID.html");

echo ?>


Ну и естественно, ссылку заменить на свою.

Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
27.06.2013, 13:54
tengy
TengyStudio

Зарегистрирован:
2009-04-15
Сообщений: 37

Спасибо большое, сейчас попробую.

Всегда существует простое легкое для понимания неправильное решение (с)
27.06.2013, 15:14
ipm
Ильин Павел

Зарегистрирован:
2012-10-12
Сообщений: 386

Сейчас проверил.

У меня в моём случае, прописан стандартный код в действие после изменения (модуль минимагазин).

Если в него добавить header("location:ссылка нужная (на какую страницу перейти)");

То работает. Вот рабочий код в моём случае
Код:
<?
if ( $changeStatus ) {
ob_end_clean();
header("Location: ".$goBackLink);
exit;
}

$nc_minishop->edit_order($message,$goods);

if($inside_admin) {
ob_end_clean();
header("Location: ".$goBackLink."&inside_admin=1");
exit;
}
else {
echo "Заказ $message изменен";
echo "<br /><br />".$goBack;
}

header("location:/ссылка/");
?>


Вам нужно просто добавить выделенную строчку и поставить свою ссылку, должно работать. Если работает, то после изменения объекта, должна автоматически открыватся нужная Вам страница, которую Вы указали в ссылке.

Знание может быть лишь у того, у кого есть вопросы. Ханс Георг Гадамер
198 196 2013-06-27 15:14:44 13126
Описание проекта