не выводить экаунты Администраторов

InstantCMS 2.X

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

#1 15 декабря 2016 в 14:47
Просмотрел ветку, но не нашел ответа на интересующую тему.
Как сделать, что бы при просмотре списка пользователей не выводились экаунты входящие в группу Администраторы?
С целью безопасности я решил разделить функции администратора и пользователя на два экаунта. Хотелось бы, чтобы административный экаунт вообще ни где не светился при просмотре списка пользователей, словно его не существует. Можно ли такое сделать и как?
#2 15 декабря 2016 в 17:14

Хотелось бы, чтобы административный экаунт вообще ни где не светился при просмотре списка пользователей

Sergo
Так вообще нигде, или при просмотре списка?
#3 15 декабря 2016 в 18:21

Как сделать

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

Найдите в файле templates/default/controllers/users/list.tpl.php вот такой код:
  1. <div class="item">
  2.  
  3. <?php if ($dataset_name == 'rating') { ?>
  4. <div class="position">
  5. <?php $position = $index_first + $index; ?>
  6. <?php if (in_array($position, range(1, 3))){ ?>
  7. <div class="medal-icon-16 medal<?php echo $position; ?>-16" title="<?php echo $position; ?>"></div>
  8. <?php } else { ?>
  9. <?php echo $position; ?>
  10. <?php } ?>
  11. </div>
  12. <?php } ?>
  13.  
  14. <div class="icon">
  15. <a href="<?php echo $this->href_to($profile['id']); ?>"><?php echo html_avatar_image($profile['avatar'], 'micro', $profile['nickname']); ?></a>
  16. </div>
  17.  
  18. <div class="title">
  19. <a href="<?php echo $this->href_to($profile['id']); ?>"><?php html($profile['nickname']); ?></a>
  20. </div>
  21.  
  22. <div class="actions">
  23.  
  24. <?php if ($dataset_name == 'popular') { ?>
  25.  
  26. <?php echo $profile['friends_count'] ? html_spellcount($profile['friends_count'], LANG_USERS_FRIENDS_SPELLCOUNT) : '&mdash;'; ?>
  27.  
  28. <?php } elseif ($dataset_name == 'rating') { ?>
  29.  
  30. <span class="rate_value karma <?php echo html_signed_class($profile['karma']); ?>" title="<?php echo LANG_KARMA; ?>"><?php echo html_signed_num($profile['karma']); ?></span> /
  31. <span class="rate_value rating" title="<?php echo LANG_RATING; ?>"><?php echo $profile['rating']; ?></span>
  32.  
  33. <?php } else { ?>
  34.  
  35. <?php if (!$profile['is_online']){ ?>
  36. <?php echo string_date_age_max($profile['date_log'], true); ?>
  37. <?php } else { ?>
  38. <span class="is_online"><?php echo LANG_ONLINE; ?></span>
  39. <?php } ?>
  40.  
  41. <?php } ?>
  42.  
  43. </div>
  44.  
  45. </div>
и замените на такой
  1. <?php if (!$profile['is_admin']) { ?>
  2. <div class="item">
  3.  
  4. <?php if ($dataset_name == 'rating') { ?>
  5. <div class="position">
  6. <?php $position = $index_first + $index; ?>
  7. <?php if (in_array($position, range(1, 3))){ ?>
  8. <div class="medal-icon-16 medal<?php echo $position; ?>-16" title="<?php echo $position; ?>"></div>
  9. <?php } else { ?>
  10. <?php echo $position; ?>
  11. <?php } ?>
  12. </div>
  13. <?php } ?>
  14.  
  15. <div class="icon">
  16. <a href="<?php echo $this->href_to($profile['id']); ?>"><?php echo html_avatar_image($profile['avatar'], 'micro', $profile['nickname']); ?></a>
  17. </div>
  18.  
  19. <div class="title">
  20. <a href="<?php echo $this->href_to($profile['id']); ?>"><?php html($profile['nickname']); ?></a>
  21. </div>
  22.  
  23. <div class="actions">
  24.  
  25. <?php if ($dataset_name == 'popular') { ?>
  26.  
  27. <?php echo $profile['friends_count'] ? html_spellcount($profile['friends_count'], LANG_USERS_FRIENDS_SPELLCOUNT) : '&mdash;'; ?>
  28.  
  29. <?php } elseif ($dataset_name == 'rating') { ?>
  30.  
  31. <span class="rate_value karma <?php echo html_signed_class($profile['karma']); ?>" title="<?php echo LANG_KARMA; ?>"><?php echo html_signed_num($profile['karma']); ?></span> /
  32. <span class="rate_value rating" title="<?php echo LANG_RATING; ?>"><?php echo $profile['rating']; ?></span>
  33.  
  34. <?php } else { ?>
  35.  
  36. <?php if (!$profile['is_online']){ ?>
  37. <?php echo string_date_age_max($profile['date_log'], true); ?>
  38. <?php } else { ?>
  39. <span class="is_online"><?php echo LANG_ONLINE; ?></span>
  40. <?php } ?>
  41.  
  42. <?php } ?>
  43.  
  44. </div>
  45.  
  46. </div>
  47. <?php } ?>
Может кто-то из профессионалов поправит)) А то я в php нуб zst
#4 15 декабря 2016 в 21:06
Lora, DK, благодарю, что откликнулись. Я смутно ориентируюсь, поэтому прошу строго не судить за наивность вопросов.


Так вообще нигде, или при просмотре списка?

Lora

Lora, не уверен, все ли варианты я представляю себе, поэтому скажем так: в Админке — должны отображаться, а в списке пользователей — не должны. Возможно я какие-то варианты не принял во внимание?


Есть костыльный один способ...

DK

DK, число обозначающее количество пользователей ведь не влияет на безопасность? — значит полагаю достаточно, чтобы это не влияло на устойчивость работы сервера.

Правильно ли я понимаю, что мне нужно будет повторять эту операцию при каждом обновлении версии сервера?
И еще одно уточнение — верно ли, что этот файл не имеет отношение к шаблонам (например Tseso от Олега Васильевича)?
#5 15 декабря 2016 в 21:27

Lora, не уверен, все ли варианты я представляю себе

Sergo
Например вы, как админ, написали статью, или оставили комментарий, или… Соответственно ваш ник отобразится в соответствующем месте.И куда будет вести ссылка, если профиля не будет.Останется битой? По моему вы что то мудрите. Отключите просмотр профиля своего в админке и этого вполне достаточно.
#6 15 декабря 2016 в 21:42

значит полагаю достаточно, чтобы это не влияло на устойчивость работы сервера

Sergo
Думаю, никак не влияет.

при каждом обновлении версии сервера?

Sergo
При обновлении движка или шаблона, если в новой версии будут изменения в этом файле.

этот файл не имеет отношение к шаблонам (например Tseso от Олега Васильевича)?

Sergo
Посмотрите, если в Вашем шаблоне есть этот файл, то изменения нужно именно вносить в него.

И, конечно же, учтите это:

вы, как админ, написали статью, или оставили комментарий, или… Соответственно ваш ник отобразится в соответствующем месте.И куда будет вести ссылка, если профиля не будет.Останется битой?

Lora
Т.е., в таком случае, Вы как админ должны заниматься только администрированием и ничего не добавлять, где выводится ссылка на профиль.

И, конечно же, возможно, есть какое-то решение, чтобы не отображаемые пользователи (админы) не считались в общем количестве пользователей. Но я этого не могу знать.
#7 15 декабря 2016 в 21:52


Lora, не уверен, все ли варианты я представляю себе

Sergo
Например вы, как админ, написали статью, или оставили комментарий, или… Соответственно ваш ник отобразится в соответствующем месте.И куда будет вести ссылка, если профиля не будет.Останется битой? По моему вы что то мудрите. Отключите просмотр профиля своего в админке и этого вполне достаточно.

Lora

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

Интересно, есть шанс, что разработчики системы увидят эту запись, ведь форум достаточно большой.
Если прочитаете, то маякните пожалуйста свое мнение на счет того, что бы встроить галку скрывающую экаунты входящие в группу администраторов.
Вне зависимости — моё уважение и благодарность за такой замечательный продукт.
Всё устроено вполне понятно, сайт леплю методом тыка и очень доволен.
#8 15 декабря 2016 в 22:06


При обновлении движка или шаблона, если в новой версии будут изменения в этом файле.
Посмотрите, если в Вашем шаблоне есть этот файл, то изменения нужно именно вносить в него.

И, конечно же, учтите это...

DK

Спасибо, за подробное разъяснение. Перспектива изменения стандарта выглядит как-то непривлекательно. Можно ведь упустить, особенно, если их со временем наберется несколько.
#9 15 декабря 2016 в 22:15

И, конечно же, возможно, есть какое-то решение, чтобы не отображаемые пользователи (админы) не считались в общем количестве пользователей. Но я этого не могу знать.

DK
Наверное достаточно добавить условие в запрос и всё.

Поверьте, разделение прав по функциям — это обязательная практика в грамотном администрировании.

Sergo
Уж чего-чего, а права по моему на двойке достаточно продуманные.

Таким образом ни кто из посторонних не должен знать даже имени админского экаунта.

Sergo
Если вы не собираетесь участвовать в "жизни" сайта (т.е. не будите добавлять контетн, как админ, комментарии, как админ и тд) зачем вам шифроваться? И так никто про вас знать не будет.
#10 15 декабря 2016 в 22:35

Наверное достаточно добавить условие в запрос и всё.

Lora
Наверное так и есть)) Скорее всего)) Я не знаю php. Пытаюсь научиться, но не хватает времени, чтобы объять необъятное.

Мне вот это проще было написать, чем добавить условие в запрос))
#11 15 декабря 2016 в 22:49


Уж чего-чего, а права по моему на двойке достаточно продуманные.

Lora
Вам виднее, я новичок. Но если все продумано, тогда о чем мы тут переписываемся? — покажите где поставить галочку дело в шляпе. ))))


Если вы не собираетесь участвовать в "жизни" сайта (т.е. не будите добавлять контетн, как админ, комментарии, как админ и тд) зачем вам шифроваться? И так никто про вас знать не будет.

Lora
на этот момент у меня пока 5 пользователей и каждый экаунт на виду. Вопросы остальных пользователей о том, кто такой "садовник" (условно говоря) и почему он не отвечает на вопросы? — совершенно излишни. Не в том дело, что обойдется, а в том, что знаешь на чем спотыкнешься, там соломку и стелешь.
#12 15 декабря 2016 в 23:30

Вам виднее, я новичок. Но если все продумано, тогда о чем мы тут переписываемся? — покажите где поставить галочку дело в шляпе. ))))

Sergo
На этот счёт галочки нет. Но если слишком хочется можете сделать так.
Файл systems/controllers/users/model.php
добавляем ф-цию
  1. public function filterGroupByNoName($group_name){
  2. $this->join('cms_users_groups_members', 'm', "m.user_id = i.id");
  3. return $this->join('cms_users_groups', 'g', "g.id = m.group_id AND g.name != '{$group_name}'");
  4. }
И затем в файле systems/controllers/users/frontend.php после (стр 226)
  1. $total = $this->model->getUsersCount();
и перед
  1. $profiles = $this->model->getUsers();
вставляем
  1. $this->model->filterGroupByNoName('admins');
Не могу сказать отразится ли это на чём то, но со списка группа админов исчезнет.
#13 15 декабря 2016 в 23:34

Если вы не собираетесь участвовать в "жизни" сайта (т.е. не будите добавлять контетн, как админ, комментарии, как админ и тд) зачем вам шифроваться? И так никто про вас знать не будет.

Lora
Знать будут. Пока в Двойке в адресах профиля стоят цифры, достаточно просто зайти по адресу site.ru/users/1 и увидеть кто самый главный админ сайта.

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

Есть ещё вариант, дождаться, когда будут добавлены "логины" в адресах профилей и задать для админа какой-то незначащий логин. Тогда он будет выглядеть как обычный пользователь и легко затеряется среди других. А если от его имени не делать публикаций, то он останется только в общем списке как обычный "потерявшийся" пользователь, который когда-то зарегистрировался и не имеет никакой активности, только читает.
#14 16 декабря 2016 в 00:03

Знать будут.

WebMan
Согласен.

А если от его имени не делать публикаций, то он останется только в общем списке как обычный "потерявшийся" пользователь, который когда-то зарегистрировался и не имеет никакой активности, только читает.

WebMan
Такой вариант, как я понял, ТС не устраивает

Вопросы остальных пользователей о том, кто такой "садовник" (условно говоря) и почему он не отвечает на вопросы? — совершенно излишни

Sergo
#15 16 декабря 2016 в 00:53


Знать будут. Пока в Двойке в адресах профиля стоят цифры, достаточно просто зайти по адресу site.ru/users/1 и увидеть кто самый главный админ сайта.
Есть вариант сделать нового пользователя с полными админскими правами с другим id (а лучше два, на всякий случай), а первого админа отключить.

WebMan

Как говорится, не в бровь, а в глаз. Спасибо, ценное замечание.
На этот случай пожалуй стоит лишить первый экаунт (site.ru/users/1) админских прав, а использовать его исключительно для публикации контента.
Админские же права стоит назначить "садовнику", имени которого ни кто знать не будет.
Если же найдется некий кулхацкер с шаловливыми кучками, кто потратив время на взлом первого экаунта (site.ru/users/1) завладеет экаунтом, то максимум, что он сделает, это напишет на сайте вместо забора слово из трех букв )))))



Такой вариант, как я понял, ТС не устраивает

Lora
Вы првильно поняли.
Скажите пожалуйста, код, который Вы привели — это в дополнение к тому, что предложил уважаемый DK, или это самостоятельное решение?
… подскажите, что значит ТС? — я еще не в теме ))))
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.