GeorgyM Опубліковано: 4 лютого 2013 Share Опубліковано: 4 лютого 2013 Всем привет. Кто - нибудь вкурсе - как можно настроить админку под менагера так, что бы он мог просматривать и изменять заказы - но не мог их удалять совсем ? Или если так нельзя - никто не в курсе где хранятся удаленные заказы - где их в админке можно найти ? Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 4 лютого 2013 Share Опубліковано: 4 лютого 2013 при удалении заказы удаляются, а не сохраняются. сделать так, чтобы менеджер мог только редактировать заказы можно. Надіслати Поділитися на інших сайтах More sharing options... GeorgyM Опубліковано: 4 лютого 2013 Автор Share Опубліковано: 4 лютого 2013 при удалении заказы удаляются, а не сохраняются. сделать так, чтобы менеджер мог только редактировать заказы можно. Мне так нравятся всегда Ваши ответы - мне даже кажется что Вы какой то особенный - очень умный и тонко устроенный робот - автоответчик :) так как сделать то едрена мать ? :) 4 Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 5 лютого 2013 Share Опубліковано: 5 лютого 2013 формально - я ответил на ваши вопросы и прояснил ситуацию :wink: фактически - вы не указали используемую версию движка, поэтому конкретики ждете зря :ugeek: = = = общая картина: 1) создается новая группа юзеров; 2) в контроллер и модель заказов админки (в методы удаления) добавляются проверки на принадлежность к группе. если менеджер из этой группы - передаем привет :ugeek: , если нет - обрабатываем запрос, как положено. Надіслати Поділитися на інших сайтах More sharing options... GeorgyM Опубліковано: 5 лютого 2013 Автор Share Опубліковано: 5 лютого 2013 формально - я ответил на ваши вопросы и прояснил ситуацию :wink: фактически - вы не указали используемую версию движка, поэтому конкретики ждете зря :ugeek: = = = общая картина: 1) создается новая группа юзеров; 2) в контроллер и модель заказов админки (в методы удаления) добавляются проверки на принадлежность к группе. если менеджер из этой группы - передаем привет :ugeek: , если нет - обрабатываем запрос, как положено. Версия движка 1.5.4.1 Контроллер и модель заказов админки - это какие файлы - Вы не подскажите ? Пример кода такой проверки у Вас имеется ? Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 6 лютого 2013 Share Опубліковано: 6 лютого 2013 мда... забыл про группу юзеров в админке. вот так это делается: создается новая группа пользователей в админке (например pureManager), смотрится ее ID [=== admin/controller/sale/order.php ===] в метод private function validateDelete() { после if (!$this->user->hasPermission('modify', 'sale/order')) { $this->error['warning'] = $this->language->get('error_permission'); } добавляем /* [webme] deny order deletions by specified user_group - begin */ $pureManagerGroupId = 11; // вот это ID созданной группы, которой ЗАПРЕЩАЕМ удалять заказы. if ($this->user->getUsergroupId() == $pureManagerGroupId) { $this->error['warning'] = $this->language->get('error_order_deletion_denied'); } /* [webme] deny order deletions by specified user_group - end */ в языковой файл [=== admin/language/russian/sale/order.php ===] добавляем /* [webme] deny order deletions by specified user_group - begin */ $_['error_order_deletion_denied'] = 'Пользуясь моментом, хочу передать привет дяде из Бобруйска.<br />Дядя, превед!'; /* [webme] deny order deletions by specified user_group - end */ [=== system/library/user.php ===] приводим к виду добавляем себе всё, что отделено комментариями /* [webme] deny order deletions by specified user_group - begin */ /* [webme] deny order deletions by specified user_group - end */ <?php class User { private $user_id; private $username; private $permission = array(); /* [webme] deny order deletions by specified user_group - begin */ private $usergroup_id; /* [webme] deny order deletions by specified user_group - end */ public function __construct($registry) { $this->db = $registry->get('db'); $this->request = $registry->get('request'); $this->session = $registry->get('session'); if (isset($this->session->data['user_id'])) { $user_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$this->session->data['user_id'] . "' AND status = '1'"); if ($user_query->num_rows) { $this->user_id = $user_query->row['user_id']; $this->username = $user_query->row['username']; /* [webme] deny order deletions by specified user_group - begin */ $this->usergroup_id = $user_query->row['user_group_id']; /* [webme] deny order deletions by specified user_group - end */ $this->db->query("UPDATE " . DB_PREFIX . "user SET ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "' WHERE user_id = '" . (int)$this->session->data['user_id'] . "'"); $user_group_query = $this->db->query("SELECT permission FROM " . DB_PREFIX . "user_group WHERE user_group_id = '" . (int)$user_query->row['user_group_id'] . "'"); $permissions = unserialize($user_group_query->row['permission']); if (is_array($permissions)) { foreach ($permissions as $key => $value) { $this->permission[$key] = $value; } } } else { $this->logout(); } } } public function login($username, $password) { $user_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "user WHERE username = '" . $this->db->escape($username) . "' AND (password = SHA1(CONCAT(salt, SHA1(CONCAT(salt, SHA1('" . $this->db->escape($password) . "'))))) OR password = '" . $this->db->escape(md5($password)) . "') AND status = '1'"); if ($user_query->num_rows) { $this->session->data['user_id'] = $user_query->row['user_id']; $this->user_id = $user_query->row['user_id']; $this->username = $user_query->row['username']; /* [webme] deny order deletions by specified user_group - begin */ $this->usergroup_id = $user_query->row['user_group_id']; /* [webme] deny order deletions by specified user_group - end */ $user_group_query = $this->db->query("SELECT permission FROM " . DB_PREFIX . "user_group WHERE user_group_id = '" . (int)$user_query->row['user_group_id'] . "'"); $permissions = unserialize($user_group_query->row['permission']); if (is_array($permissions)) { foreach ($permissions as $key => $value) { $this->permission[$key] = $value; } } return true; } else { return false; } } public function logout() { unset($this->session->data['user_id']); $this->user_id = ''; $this->username = ''; session_destroy(); } public function hasPermission($key, $value) { if (isset($this->permission[$key])) { return in_array($value, $this->permission[$key]); } else { return false; } } public function isLogged() { return $this->user_id; } public function getId() { return $this->user_id; } public function getUserName() { return $this->username; } /* [webme] deny order deletions by specified user_group - begin */ public function getUsergroupId() { return $this->usergroup_id; } /* [webme] deny order deletions by specified user_group - end */ } ?> 1 Надіслати Поділитися на інших сайтах More sharing options... GeorgyM Опубліковано: 6 лютого 2013 Автор Share Опубліковано: 6 лютого 2013 Ниче себе - сейчас попробую - это засунуть в код . Спасибо Надіслати Поділитися на інших сайтах More sharing options... GeorgyM Опубліковано: 8 лютого 2013 Автор Share Опубліковано: 8 лютого 2013 Круто все работает - ГРАНД МЕРСИ Надіслати Поділитися на інших сайтах More sharing options... 2 months later... lastrong Опубліковано: 24 квітня 2013 Share Опубліковано: 24 квітня 2013 Хороший вопрос, нашел эту тему по запросу getUsergroupId() а вот такой вопрос, как запретить менеджеру видеть при входе в админку статистику чего было продано и на сколько. Т.е. верхние 2 блока, менеджеру, а точнее, кладовщику, не нужны, надо только отмечать заказы кто забрал со склада и ставить им статус "Завершено". (это я решил способом настройки "группы пользователей" там и отметил только изменение и просмотр "Заказы"). А вот статистика нафиг ему с глаз долой. В идеале еще скрыть ему все пункты меню с глаз долой, чтоб не было соблазна хакеризмом заниматься, но думаю на основе того же алгоритма и это решается. Надіслати Поділитися на інших сайтах More sharing options... lastrong Опубліковано: 24 квітня 2013 Share Опубліковано: 24 квітня 2013 (змінено) Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее.Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Змінено 24 квітня 2013 користувачем lastrong cenzoRED Надіслати Поділитися на інших сайтах More sharing options... 1 year later... kds2001 Опубліковано: 11 червня 2014 Share Опубліковано: 11 червня 2014 Решено: Добавить ДВУХ менеджеров, с разными доступами.См предыдущий пост + мой :) if ($this->model_user_user->getUserGroupId($this->user->getId()) == 11) { $this->template = 'common/home_user.tpl'; } elseif ($this->model_user_user->getUserGroupId($this->user->getId()) == 12) { $this->template = 'common/home_K.tpl'; } else { $this->template = 'common/home.tpl'; } Надіслати Поділитися на інших сайтах More sharing options... 7 months later... Zipua Опубліковано: 7 лютого 2015 Share Опубліковано: 7 лютого 2015 Всем привет.Кто - нибудь в курсе - как можно настроить админку под менагера так, что бы он мог редактировать описание товара - но не мог его удалять или удалять товар в списке?Т.е. задача только правка текста к товару....ocStore Version 1.5.4.1 Надіслати Поділитися на інших сайтах More sharing options... AlexDW Опубліковано: 7 лютого 2015 Share Опубліковано: 7 лютого 2015 По аналогии, как выше описывали для заказов, править для товаров Чего я реально не понимаю - это самой сути хотелок "мог редактировать - но не мог удалять" :ugeek: Ну дадите вы права, не удалит, а так наредактирует (например заполнит все нулями), что итог будет ненамного лучше удаления :-D :-D :-D Не? Надіслати Поділитися на інших сайтах More sharing options... 2 months later... ltc Опубліковано: 27 квітня 2015 Share Опубліковано: 27 квітня 2015 AlexDW, Заполнит все нулями, получит предупреждение, что так делать нельзя. При рецидиве мы будем знать, что наш манагер плут и мошенник. А если он удаляет по тихому, то мы и не догадываемся ниочем. Надіслати Поділитися на інших сайтах More sharing options... 11 months later... VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Привет, странно повторил всё, 1. Скопировал header.tpl, 2. Переименовал в header_users.tpl, 3. Залил на хостинг в admin/view/template/common/header_users.tpl, 4. В папке common теперь находятся два файла header.tpl и header_users.tpl 5. В файл admin/model/user/user.php, в конце кода добавляем: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } После всех манипуляций, перезагрузки браузера и на странице магазина и в админке, вроде бы всё хорошо Но после выхода из админки пишет: Notice: Error: Could not load template /admin/view/template/common/header-usergroup.tpl! in /system/engine/controller.php on line 70 Ещё у меня вопрос: я что то не понял, а где идёт подмена header.tpl на header_users.tpl Надіслати Поділитися на інших сайтах More sharing options... VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 (змінено) Кажется понял в чём ошибка: 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } За место header-usergroup.tpl надо поставить моё название header_users.tpl !!! Просто автор поста ни где в тексте не написал, что он при переименовании файла header.tpl, назвал его header-usergroup.tpl Чем ввёл меня в лёгкое заблуждение. А вообще статья супер - долго искал в интернете ответ на свой вопрос, и только здесь получил ответ. Спасибо автору!!! Змінено 8 квітня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Krot Опубліковано: 15 червня 2016 Share Опубліковано: 15 червня 2016 а это для какой версии движка ? для 2.1 2.1 подойдёт ? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... VladisOK Опубліковано: 28 липня 2016 Share Опубліковано: 28 липня 2016 (змінено) ---------------------------------------------------------------------- to Krot: Проверенно на версии 1.5.6.4, для 2.+ не подойдёт ---------------------------------------------------------------------- Прошу специалистов помочь адаптировать это же решение, но под 2.0 + версий P.S. Считаю, что это решение должно быть по умолчанию в движке OpenCart, нет разрешения для менеджеров управлять какой либо из категорий в админке, значит и нет визуального отображения этих категорий для менеджеров. Не понимаю, из каких соображений это не сделано. Змінено 28 липня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options... VladisOK Опубліковано: 2 серпня 2016 Share Опубліковано: 2 серпня 2016 Найдено решение - http://www.opencart.com/index.php?route=extension/extension/info&extension_id=23615 Спасибо всем, особенно мне:) !!! Надіслати Поділитися на інших сайтах More sharing options... 1 year later... hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 Fatal error: Call to undefined method ModelUserUser::getUserCategories() Надіслати Поділитися на інших сайтах More sharing options... hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 В 24.04.2013 в 08:38, lastrong сказал: Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Call to undefined method ModelUserUser::getUserCategories() Когда захожу в Пользователи и нажимаю изменить права Надіслати Поділитися на інших сайтах More sharing options... 1 month later... VadimD Опубліковано: 20 грудня 2017 Share Опубліковано: 20 грудня 2017 (змінено) В 06.02.2013 в 10:57, afwollis сказал: [=== system/library/user.php ===] приводим к виду добавляем себе всё, что отделено комментариями /* [webme] deny order deletions by specified user_group - begin */ /* [webme] deny order deletions by specified user_group - end */ Подскажите пожалуйста, что конкретно прописывать system/library/user.php ? Змінено 20 грудня 2017 користувачем VadimD Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування [Решено] Настроить админку под менеджера как ? Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
afwollis Опубліковано: 4 лютого 2013 Share Опубліковано: 4 лютого 2013 при удалении заказы удаляются, а не сохраняются. сделать так, чтобы менеджер мог только редактировать заказы можно. Надіслати Поділитися на інших сайтах More sharing options... GeorgyM Опубліковано: 4 лютого 2013 Автор Share Опубліковано: 4 лютого 2013 при удалении заказы удаляются, а не сохраняются. сделать так, чтобы менеджер мог только редактировать заказы можно. Мне так нравятся всегда Ваши ответы - мне даже кажется что Вы какой то особенный - очень умный и тонко устроенный робот - автоответчик :) так как сделать то едрена мать ? :) 4 Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 5 лютого 2013 Share Опубліковано: 5 лютого 2013 формально - я ответил на ваши вопросы и прояснил ситуацию :wink: фактически - вы не указали используемую версию движка, поэтому конкретики ждете зря :ugeek: = = = общая картина: 1) создается новая группа юзеров; 2) в контроллер и модель заказов админки (в методы удаления) добавляются проверки на принадлежность к группе. если менеджер из этой группы - передаем привет :ugeek: , если нет - обрабатываем запрос, как положено. Надіслати Поділитися на інших сайтах More sharing options... GeorgyM Опубліковано: 5 лютого 2013 Автор Share Опубліковано: 5 лютого 2013 формально - я ответил на ваши вопросы и прояснил ситуацию :wink: фактически - вы не указали используемую версию движка, поэтому конкретики ждете зря :ugeek: = = = общая картина: 1) создается новая группа юзеров; 2) в контроллер и модель заказов админки (в методы удаления) добавляются проверки на принадлежность к группе. если менеджер из этой группы - передаем привет :ugeek: , если нет - обрабатываем запрос, как положено. Версия движка 1.5.4.1 Контроллер и модель заказов админки - это какие файлы - Вы не подскажите ? Пример кода такой проверки у Вас имеется ? Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 6 лютого 2013 Share Опубліковано: 6 лютого 2013 мда... забыл про группу юзеров в админке. вот так это делается: создается новая группа пользователей в админке (например pureManager), смотрится ее ID [=== admin/controller/sale/order.php ===] в метод private function validateDelete() { после if (!$this->user->hasPermission('modify', 'sale/order')) { $this->error['warning'] = $this->language->get('error_permission'); } добавляем /* [webme] deny order deletions by specified user_group - begin */ $pureManagerGroupId = 11; // вот это ID созданной группы, которой ЗАПРЕЩАЕМ удалять заказы. if ($this->user->getUsergroupId() == $pureManagerGroupId) { $this->error['warning'] = $this->language->get('error_order_deletion_denied'); } /* [webme] deny order deletions by specified user_group - end */ в языковой файл [=== admin/language/russian/sale/order.php ===] добавляем /* [webme] deny order deletions by specified user_group - begin */ $_['error_order_deletion_denied'] = 'Пользуясь моментом, хочу передать привет дяде из Бобруйска.<br />Дядя, превед!'; /* [webme] deny order deletions by specified user_group - end */ [=== system/library/user.php ===] приводим к виду добавляем себе всё, что отделено комментариями /* [webme] deny order deletions by specified user_group - begin */ /* [webme] deny order deletions by specified user_group - end */ <?php class User { private $user_id; private $username; private $permission = array(); /* [webme] deny order deletions by specified user_group - begin */ private $usergroup_id; /* [webme] deny order deletions by specified user_group - end */ public function __construct($registry) { $this->db = $registry->get('db'); $this->request = $registry->get('request'); $this->session = $registry->get('session'); if (isset($this->session->data['user_id'])) { $user_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$this->session->data['user_id'] . "' AND status = '1'"); if ($user_query->num_rows) { $this->user_id = $user_query->row['user_id']; $this->username = $user_query->row['username']; /* [webme] deny order deletions by specified user_group - begin */ $this->usergroup_id = $user_query->row['user_group_id']; /* [webme] deny order deletions by specified user_group - end */ $this->db->query("UPDATE " . DB_PREFIX . "user SET ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "' WHERE user_id = '" . (int)$this->session->data['user_id'] . "'"); $user_group_query = $this->db->query("SELECT permission FROM " . DB_PREFIX . "user_group WHERE user_group_id = '" . (int)$user_query->row['user_group_id'] . "'"); $permissions = unserialize($user_group_query->row['permission']); if (is_array($permissions)) { foreach ($permissions as $key => $value) { $this->permission[$key] = $value; } } } else { $this->logout(); } } } public function login($username, $password) { $user_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "user WHERE username = '" . $this->db->escape($username) . "' AND (password = SHA1(CONCAT(salt, SHA1(CONCAT(salt, SHA1('" . $this->db->escape($password) . "'))))) OR password = '" . $this->db->escape(md5($password)) . "') AND status = '1'"); if ($user_query->num_rows) { $this->session->data['user_id'] = $user_query->row['user_id']; $this->user_id = $user_query->row['user_id']; $this->username = $user_query->row['username']; /* [webme] deny order deletions by specified user_group - begin */ $this->usergroup_id = $user_query->row['user_group_id']; /* [webme] deny order deletions by specified user_group - end */ $user_group_query = $this->db->query("SELECT permission FROM " . DB_PREFIX . "user_group WHERE user_group_id = '" . (int)$user_query->row['user_group_id'] . "'"); $permissions = unserialize($user_group_query->row['permission']); if (is_array($permissions)) { foreach ($permissions as $key => $value) { $this->permission[$key] = $value; } } return true; } else { return false; } } public function logout() { unset($this->session->data['user_id']); $this->user_id = ''; $this->username = ''; session_destroy(); } public function hasPermission($key, $value) { if (isset($this->permission[$key])) { return in_array($value, $this->permission[$key]); } else { return false; } } public function isLogged() { return $this->user_id; } public function getId() { return $this->user_id; } public function getUserName() { return $this->username; } /* [webme] deny order deletions by specified user_group - begin */ public function getUsergroupId() { return $this->usergroup_id; } /* [webme] deny order deletions by specified user_group - end */ } ?> 1 Надіслати Поділитися на інших сайтах More sharing options... GeorgyM Опубліковано: 6 лютого 2013 Автор Share Опубліковано: 6 лютого 2013 Ниче себе - сейчас попробую - это засунуть в код . Спасибо Надіслати Поділитися на інших сайтах More sharing options... GeorgyM Опубліковано: 8 лютого 2013 Автор Share Опубліковано: 8 лютого 2013 Круто все работает - ГРАНД МЕРСИ Надіслати Поділитися на інших сайтах More sharing options... 2 months later... lastrong Опубліковано: 24 квітня 2013 Share Опубліковано: 24 квітня 2013 Хороший вопрос, нашел эту тему по запросу getUsergroupId() а вот такой вопрос, как запретить менеджеру видеть при входе в админку статистику чего было продано и на сколько. Т.е. верхние 2 блока, менеджеру, а точнее, кладовщику, не нужны, надо только отмечать заказы кто забрал со склада и ставить им статус "Завершено". (это я решил способом настройки "группы пользователей" там и отметил только изменение и просмотр "Заказы"). А вот статистика нафиг ему с глаз долой. В идеале еще скрыть ему все пункты меню с глаз долой, чтоб не было соблазна хакеризмом заниматься, но думаю на основе того же алгоритма и это решается. Надіслати Поділитися на інших сайтах More sharing options... lastrong Опубліковано: 24 квітня 2013 Share Опубліковано: 24 квітня 2013 (змінено) Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее.Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Змінено 24 квітня 2013 користувачем lastrong cenzoRED Надіслати Поділитися на інших сайтах More sharing options... 1 year later... kds2001 Опубліковано: 11 червня 2014 Share Опубліковано: 11 червня 2014 Решено: Добавить ДВУХ менеджеров, с разными доступами.См предыдущий пост + мой :) if ($this->model_user_user->getUserGroupId($this->user->getId()) == 11) { $this->template = 'common/home_user.tpl'; } elseif ($this->model_user_user->getUserGroupId($this->user->getId()) == 12) { $this->template = 'common/home_K.tpl'; } else { $this->template = 'common/home.tpl'; } Надіслати Поділитися на інших сайтах More sharing options... 7 months later... Zipua Опубліковано: 7 лютого 2015 Share Опубліковано: 7 лютого 2015 Всем привет.Кто - нибудь в курсе - как можно настроить админку под менагера так, что бы он мог редактировать описание товара - но не мог его удалять или удалять товар в списке?Т.е. задача только правка текста к товару....ocStore Version 1.5.4.1 Надіслати Поділитися на інших сайтах More sharing options... AlexDW Опубліковано: 7 лютого 2015 Share Опубліковано: 7 лютого 2015 По аналогии, как выше описывали для заказов, править для товаров Чего я реально не понимаю - это самой сути хотелок "мог редактировать - но не мог удалять" :ugeek: Ну дадите вы права, не удалит, а так наредактирует (например заполнит все нулями), что итог будет ненамного лучше удаления :-D :-D :-D Не? Надіслати Поділитися на інших сайтах More sharing options... 2 months later... ltc Опубліковано: 27 квітня 2015 Share Опубліковано: 27 квітня 2015 AlexDW, Заполнит все нулями, получит предупреждение, что так делать нельзя. При рецидиве мы будем знать, что наш манагер плут и мошенник. А если он удаляет по тихому, то мы и не догадываемся ниочем. Надіслати Поділитися на інших сайтах More sharing options... 11 months later... VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Привет, странно повторил всё, 1. Скопировал header.tpl, 2. Переименовал в header_users.tpl, 3. Залил на хостинг в admin/view/template/common/header_users.tpl, 4. В папке common теперь находятся два файла header.tpl и header_users.tpl 5. В файл admin/model/user/user.php, в конце кода добавляем: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } После всех манипуляций, перезагрузки браузера и на странице магазина и в админке, вроде бы всё хорошо Но после выхода из админки пишет: Notice: Error: Could not load template /admin/view/template/common/header-usergroup.tpl! in /system/engine/controller.php on line 70 Ещё у меня вопрос: я что то не понял, а где идёт подмена header.tpl на header_users.tpl Надіслати Поділитися на інших сайтах More sharing options... VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 (змінено) Кажется понял в чём ошибка: 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } За место header-usergroup.tpl надо поставить моё название header_users.tpl !!! Просто автор поста ни где в тексте не написал, что он при переименовании файла header.tpl, назвал его header-usergroup.tpl Чем ввёл меня в лёгкое заблуждение. А вообще статья супер - долго искал в интернете ответ на свой вопрос, и только здесь получил ответ. Спасибо автору!!! Змінено 8 квітня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Krot Опубліковано: 15 червня 2016 Share Опубліковано: 15 червня 2016 а это для какой версии движка ? для 2.1 2.1 подойдёт ? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... VladisOK Опубліковано: 28 липня 2016 Share Опубліковано: 28 липня 2016 (змінено) ---------------------------------------------------------------------- to Krot: Проверенно на версии 1.5.6.4, для 2.+ не подойдёт ---------------------------------------------------------------------- Прошу специалистов помочь адаптировать это же решение, но под 2.0 + версий P.S. Считаю, что это решение должно быть по умолчанию в движке OpenCart, нет разрешения для менеджеров управлять какой либо из категорий в админке, значит и нет визуального отображения этих категорий для менеджеров. Не понимаю, из каких соображений это не сделано. Змінено 28 липня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options... VladisOK Опубліковано: 2 серпня 2016 Share Опубліковано: 2 серпня 2016 Найдено решение - http://www.opencart.com/index.php?route=extension/extension/info&extension_id=23615 Спасибо всем, особенно мне:) !!! Надіслати Поділитися на інших сайтах More sharing options... 1 year later... hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 Fatal error: Call to undefined method ModelUserUser::getUserCategories() Надіслати Поділитися на інших сайтах More sharing options... hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 В 24.04.2013 в 08:38, lastrong сказал: Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Call to undefined method ModelUserUser::getUserCategories() Когда захожу в Пользователи и нажимаю изменить права Надіслати Поділитися на інших сайтах More sharing options... 1 month later... VadimD Опубліковано: 20 грудня 2017 Share Опубліковано: 20 грудня 2017 (змінено) В 06.02.2013 в 10:57, afwollis сказал: [=== system/library/user.php ===] приводим к виду добавляем себе всё, что отделено комментариями /* [webme] deny order deletions by specified user_group - begin */ /* [webme] deny order deletions by specified user_group - end */ Подскажите пожалуйста, что конкретно прописывать system/library/user.php ? Змінено 20 грудня 2017 користувачем VadimD Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування [Решено] Настроить админку под менеджера как ? Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
GeorgyM Опубліковано: 4 лютого 2013 Автор Share Опубліковано: 4 лютого 2013 при удалении заказы удаляются, а не сохраняются. сделать так, чтобы менеджер мог только редактировать заказы можно. Мне так нравятся всегда Ваши ответы - мне даже кажется что Вы какой то особенный - очень умный и тонко устроенный робот - автоответчик :) так как сделать то едрена мать ? :) 4 Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 5 лютого 2013 Share Опубліковано: 5 лютого 2013 формально - я ответил на ваши вопросы и прояснил ситуацию :wink: фактически - вы не указали используемую версию движка, поэтому конкретики ждете зря :ugeek: = = = общая картина: 1) создается новая группа юзеров; 2) в контроллер и модель заказов админки (в методы удаления) добавляются проверки на принадлежность к группе. если менеджер из этой группы - передаем привет :ugeek: , если нет - обрабатываем запрос, как положено. Надіслати Поділитися на інших сайтах More sharing options... GeorgyM Опубліковано: 5 лютого 2013 Автор Share Опубліковано: 5 лютого 2013 формально - я ответил на ваши вопросы и прояснил ситуацию :wink: фактически - вы не указали используемую версию движка, поэтому конкретики ждете зря :ugeek: = = = общая картина: 1) создается новая группа юзеров; 2) в контроллер и модель заказов админки (в методы удаления) добавляются проверки на принадлежность к группе. если менеджер из этой группы - передаем привет :ugeek: , если нет - обрабатываем запрос, как положено. Версия движка 1.5.4.1 Контроллер и модель заказов админки - это какие файлы - Вы не подскажите ? Пример кода такой проверки у Вас имеется ? Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 6 лютого 2013 Share Опубліковано: 6 лютого 2013 мда... забыл про группу юзеров в админке. вот так это делается: создается новая группа пользователей в админке (например pureManager), смотрится ее ID [=== admin/controller/sale/order.php ===] в метод private function validateDelete() { после if (!$this->user->hasPermission('modify', 'sale/order')) { $this->error['warning'] = $this->language->get('error_permission'); } добавляем /* [webme] deny order deletions by specified user_group - begin */ $pureManagerGroupId = 11; // вот это ID созданной группы, которой ЗАПРЕЩАЕМ удалять заказы. if ($this->user->getUsergroupId() == $pureManagerGroupId) { $this->error['warning'] = $this->language->get('error_order_deletion_denied'); } /* [webme] deny order deletions by specified user_group - end */ в языковой файл [=== admin/language/russian/sale/order.php ===] добавляем /* [webme] deny order deletions by specified user_group - begin */ $_['error_order_deletion_denied'] = 'Пользуясь моментом, хочу передать привет дяде из Бобруйска.<br />Дядя, превед!'; /* [webme] deny order deletions by specified user_group - end */ [=== system/library/user.php ===] приводим к виду добавляем себе всё, что отделено комментариями /* [webme] deny order deletions by specified user_group - begin */ /* [webme] deny order deletions by specified user_group - end */ <?php class User { private $user_id; private $username; private $permission = array(); /* [webme] deny order deletions by specified user_group - begin */ private $usergroup_id; /* [webme] deny order deletions by specified user_group - end */ public function __construct($registry) { $this->db = $registry->get('db'); $this->request = $registry->get('request'); $this->session = $registry->get('session'); if (isset($this->session->data['user_id'])) { $user_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$this->session->data['user_id'] . "' AND status = '1'"); if ($user_query->num_rows) { $this->user_id = $user_query->row['user_id']; $this->username = $user_query->row['username']; /* [webme] deny order deletions by specified user_group - begin */ $this->usergroup_id = $user_query->row['user_group_id']; /* [webme] deny order deletions by specified user_group - end */ $this->db->query("UPDATE " . DB_PREFIX . "user SET ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "' WHERE user_id = '" . (int)$this->session->data['user_id'] . "'"); $user_group_query = $this->db->query("SELECT permission FROM " . DB_PREFIX . "user_group WHERE user_group_id = '" . (int)$user_query->row['user_group_id'] . "'"); $permissions = unserialize($user_group_query->row['permission']); if (is_array($permissions)) { foreach ($permissions as $key => $value) { $this->permission[$key] = $value; } } } else { $this->logout(); } } } public function login($username, $password) { $user_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "user WHERE username = '" . $this->db->escape($username) . "' AND (password = SHA1(CONCAT(salt, SHA1(CONCAT(salt, SHA1('" . $this->db->escape($password) . "'))))) OR password = '" . $this->db->escape(md5($password)) . "') AND status = '1'"); if ($user_query->num_rows) { $this->session->data['user_id'] = $user_query->row['user_id']; $this->user_id = $user_query->row['user_id']; $this->username = $user_query->row['username']; /* [webme] deny order deletions by specified user_group - begin */ $this->usergroup_id = $user_query->row['user_group_id']; /* [webme] deny order deletions by specified user_group - end */ $user_group_query = $this->db->query("SELECT permission FROM " . DB_PREFIX . "user_group WHERE user_group_id = '" . (int)$user_query->row['user_group_id'] . "'"); $permissions = unserialize($user_group_query->row['permission']); if (is_array($permissions)) { foreach ($permissions as $key => $value) { $this->permission[$key] = $value; } } return true; } else { return false; } } public function logout() { unset($this->session->data['user_id']); $this->user_id = ''; $this->username = ''; session_destroy(); } public function hasPermission($key, $value) { if (isset($this->permission[$key])) { return in_array($value, $this->permission[$key]); } else { return false; } } public function isLogged() { return $this->user_id; } public function getId() { return $this->user_id; } public function getUserName() { return $this->username; } /* [webme] deny order deletions by specified user_group - begin */ public function getUsergroupId() { return $this->usergroup_id; } /* [webme] deny order deletions by specified user_group - end */ } ?> 1 Надіслати Поділитися на інших сайтах More sharing options... GeorgyM Опубліковано: 6 лютого 2013 Автор Share Опубліковано: 6 лютого 2013 Ниче себе - сейчас попробую - это засунуть в код . Спасибо Надіслати Поділитися на інших сайтах More sharing options... GeorgyM Опубліковано: 8 лютого 2013 Автор Share Опубліковано: 8 лютого 2013 Круто все работает - ГРАНД МЕРСИ Надіслати Поділитися на інших сайтах More sharing options... 2 months later... lastrong Опубліковано: 24 квітня 2013 Share Опубліковано: 24 квітня 2013 Хороший вопрос, нашел эту тему по запросу getUsergroupId() а вот такой вопрос, как запретить менеджеру видеть при входе в админку статистику чего было продано и на сколько. Т.е. верхние 2 блока, менеджеру, а точнее, кладовщику, не нужны, надо только отмечать заказы кто забрал со склада и ставить им статус "Завершено". (это я решил способом настройки "группы пользователей" там и отметил только изменение и просмотр "Заказы"). А вот статистика нафиг ему с глаз долой. В идеале еще скрыть ему все пункты меню с глаз долой, чтоб не было соблазна хакеризмом заниматься, но думаю на основе того же алгоритма и это решается. Надіслати Поділитися на інших сайтах More sharing options... lastrong Опубліковано: 24 квітня 2013 Share Опубліковано: 24 квітня 2013 (змінено) Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее.Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Змінено 24 квітня 2013 користувачем lastrong cenzoRED Надіслати Поділитися на інших сайтах More sharing options... 1 year later... kds2001 Опубліковано: 11 червня 2014 Share Опубліковано: 11 червня 2014 Решено: Добавить ДВУХ менеджеров, с разными доступами.См предыдущий пост + мой :) if ($this->model_user_user->getUserGroupId($this->user->getId()) == 11) { $this->template = 'common/home_user.tpl'; } elseif ($this->model_user_user->getUserGroupId($this->user->getId()) == 12) { $this->template = 'common/home_K.tpl'; } else { $this->template = 'common/home.tpl'; } Надіслати Поділитися на інших сайтах More sharing options... 7 months later... Zipua Опубліковано: 7 лютого 2015 Share Опубліковано: 7 лютого 2015 Всем привет.Кто - нибудь в курсе - как можно настроить админку под менагера так, что бы он мог редактировать описание товара - но не мог его удалять или удалять товар в списке?Т.е. задача только правка текста к товару....ocStore Version 1.5.4.1 Надіслати Поділитися на інших сайтах More sharing options... AlexDW Опубліковано: 7 лютого 2015 Share Опубліковано: 7 лютого 2015 По аналогии, как выше описывали для заказов, править для товаров Чего я реально не понимаю - это самой сути хотелок "мог редактировать - но не мог удалять" :ugeek: Ну дадите вы права, не удалит, а так наредактирует (например заполнит все нулями), что итог будет ненамного лучше удаления :-D :-D :-D Не? Надіслати Поділитися на інших сайтах More sharing options... 2 months later... ltc Опубліковано: 27 квітня 2015 Share Опубліковано: 27 квітня 2015 AlexDW, Заполнит все нулями, получит предупреждение, что так делать нельзя. При рецидиве мы будем знать, что наш манагер плут и мошенник. А если он удаляет по тихому, то мы и не догадываемся ниочем. Надіслати Поділитися на інших сайтах More sharing options... 11 months later... VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Привет, странно повторил всё, 1. Скопировал header.tpl, 2. Переименовал в header_users.tpl, 3. Залил на хостинг в admin/view/template/common/header_users.tpl, 4. В папке common теперь находятся два файла header.tpl и header_users.tpl 5. В файл admin/model/user/user.php, в конце кода добавляем: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } После всех манипуляций, перезагрузки браузера и на странице магазина и в админке, вроде бы всё хорошо Но после выхода из админки пишет: Notice: Error: Could not load template /admin/view/template/common/header-usergroup.tpl! in /system/engine/controller.php on line 70 Ещё у меня вопрос: я что то не понял, а где идёт подмена header.tpl на header_users.tpl Надіслати Поділитися на інших сайтах More sharing options... VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 (змінено) Кажется понял в чём ошибка: 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } За место header-usergroup.tpl надо поставить моё название header_users.tpl !!! Просто автор поста ни где в тексте не написал, что он при переименовании файла header.tpl, назвал его header-usergroup.tpl Чем ввёл меня в лёгкое заблуждение. А вообще статья супер - долго искал в интернете ответ на свой вопрос, и только здесь получил ответ. Спасибо автору!!! Змінено 8 квітня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Krot Опубліковано: 15 червня 2016 Share Опубліковано: 15 червня 2016 а это для какой версии движка ? для 2.1 2.1 подойдёт ? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... VladisOK Опубліковано: 28 липня 2016 Share Опубліковано: 28 липня 2016 (змінено) ---------------------------------------------------------------------- to Krot: Проверенно на версии 1.5.6.4, для 2.+ не подойдёт ---------------------------------------------------------------------- Прошу специалистов помочь адаптировать это же решение, но под 2.0 + версий P.S. Считаю, что это решение должно быть по умолчанию в движке OpenCart, нет разрешения для менеджеров управлять какой либо из категорий в админке, значит и нет визуального отображения этих категорий для менеджеров. Не понимаю, из каких соображений это не сделано. Змінено 28 липня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options... VladisOK Опубліковано: 2 серпня 2016 Share Опубліковано: 2 серпня 2016 Найдено решение - http://www.opencart.com/index.php?route=extension/extension/info&extension_id=23615 Спасибо всем, особенно мне:) !!! Надіслати Поділитися на інших сайтах More sharing options... 1 year later... hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 Fatal error: Call to undefined method ModelUserUser::getUserCategories() Надіслати Поділитися на інших сайтах More sharing options... hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 В 24.04.2013 в 08:38, lastrong сказал: Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Call to undefined method ModelUserUser::getUserCategories() Когда захожу в Пользователи и нажимаю изменить права Надіслати Поділитися на інших сайтах More sharing options... 1 month later... VadimD Опубліковано: 20 грудня 2017 Share Опубліковано: 20 грудня 2017 (змінено) В 06.02.2013 в 10:57, afwollis сказал: [=== system/library/user.php ===] приводим к виду добавляем себе всё, что отделено комментариями /* [webme] deny order deletions by specified user_group - begin */ /* [webme] deny order deletions by specified user_group - end */ Подскажите пожалуйста, что конкретно прописывать system/library/user.php ? Змінено 20 грудня 2017 користувачем VadimD Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування [Решено] Настроить админку под менеджера как ? Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
afwollis Опубліковано: 5 лютого 2013 Share Опубліковано: 5 лютого 2013 формально - я ответил на ваши вопросы и прояснил ситуацию :wink: фактически - вы не указали используемую версию движка, поэтому конкретики ждете зря :ugeek: = = = общая картина: 1) создается новая группа юзеров; 2) в контроллер и модель заказов админки (в методы удаления) добавляются проверки на принадлежность к группе. если менеджер из этой группы - передаем привет :ugeek: , если нет - обрабатываем запрос, как положено. Надіслати Поділитися на інших сайтах More sharing options... GeorgyM Опубліковано: 5 лютого 2013 Автор Share Опубліковано: 5 лютого 2013 формально - я ответил на ваши вопросы и прояснил ситуацию :wink: фактически - вы не указали используемую версию движка, поэтому конкретики ждете зря :ugeek: = = = общая картина: 1) создается новая группа юзеров; 2) в контроллер и модель заказов админки (в методы удаления) добавляются проверки на принадлежность к группе. если менеджер из этой группы - передаем привет :ugeek: , если нет - обрабатываем запрос, как положено. Версия движка 1.5.4.1 Контроллер и модель заказов админки - это какие файлы - Вы не подскажите ? Пример кода такой проверки у Вас имеется ? Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 6 лютого 2013 Share Опубліковано: 6 лютого 2013 мда... забыл про группу юзеров в админке. вот так это делается: создается новая группа пользователей в админке (например pureManager), смотрится ее ID [=== admin/controller/sale/order.php ===] в метод private function validateDelete() { после if (!$this->user->hasPermission('modify', 'sale/order')) { $this->error['warning'] = $this->language->get('error_permission'); } добавляем /* [webme] deny order deletions by specified user_group - begin */ $pureManagerGroupId = 11; // вот это ID созданной группы, которой ЗАПРЕЩАЕМ удалять заказы. if ($this->user->getUsergroupId() == $pureManagerGroupId) { $this->error['warning'] = $this->language->get('error_order_deletion_denied'); } /* [webme] deny order deletions by specified user_group - end */ в языковой файл [=== admin/language/russian/sale/order.php ===] добавляем /* [webme] deny order deletions by specified user_group - begin */ $_['error_order_deletion_denied'] = 'Пользуясь моментом, хочу передать привет дяде из Бобруйска.<br />Дядя, превед!'; /* [webme] deny order deletions by specified user_group - end */ [=== system/library/user.php ===] приводим к виду добавляем себе всё, что отделено комментариями /* [webme] deny order deletions by specified user_group - begin */ /* [webme] deny order deletions by specified user_group - end */ <?php class User { private $user_id; private $username; private $permission = array(); /* [webme] deny order deletions by specified user_group - begin */ private $usergroup_id; /* [webme] deny order deletions by specified user_group - end */ public function __construct($registry) { $this->db = $registry->get('db'); $this->request = $registry->get('request'); $this->session = $registry->get('session'); if (isset($this->session->data['user_id'])) { $user_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$this->session->data['user_id'] . "' AND status = '1'"); if ($user_query->num_rows) { $this->user_id = $user_query->row['user_id']; $this->username = $user_query->row['username']; /* [webme] deny order deletions by specified user_group - begin */ $this->usergroup_id = $user_query->row['user_group_id']; /* [webme] deny order deletions by specified user_group - end */ $this->db->query("UPDATE " . DB_PREFIX . "user SET ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "' WHERE user_id = '" . (int)$this->session->data['user_id'] . "'"); $user_group_query = $this->db->query("SELECT permission FROM " . DB_PREFIX . "user_group WHERE user_group_id = '" . (int)$user_query->row['user_group_id'] . "'"); $permissions = unserialize($user_group_query->row['permission']); if (is_array($permissions)) { foreach ($permissions as $key => $value) { $this->permission[$key] = $value; } } } else { $this->logout(); } } } public function login($username, $password) { $user_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "user WHERE username = '" . $this->db->escape($username) . "' AND (password = SHA1(CONCAT(salt, SHA1(CONCAT(salt, SHA1('" . $this->db->escape($password) . "'))))) OR password = '" . $this->db->escape(md5($password)) . "') AND status = '1'"); if ($user_query->num_rows) { $this->session->data['user_id'] = $user_query->row['user_id']; $this->user_id = $user_query->row['user_id']; $this->username = $user_query->row['username']; /* [webme] deny order deletions by specified user_group - begin */ $this->usergroup_id = $user_query->row['user_group_id']; /* [webme] deny order deletions by specified user_group - end */ $user_group_query = $this->db->query("SELECT permission FROM " . DB_PREFIX . "user_group WHERE user_group_id = '" . (int)$user_query->row['user_group_id'] . "'"); $permissions = unserialize($user_group_query->row['permission']); if (is_array($permissions)) { foreach ($permissions as $key => $value) { $this->permission[$key] = $value; } } return true; } else { return false; } } public function logout() { unset($this->session->data['user_id']); $this->user_id = ''; $this->username = ''; session_destroy(); } public function hasPermission($key, $value) { if (isset($this->permission[$key])) { return in_array($value, $this->permission[$key]); } else { return false; } } public function isLogged() { return $this->user_id; } public function getId() { return $this->user_id; } public function getUserName() { return $this->username; } /* [webme] deny order deletions by specified user_group - begin */ public function getUsergroupId() { return $this->usergroup_id; } /* [webme] deny order deletions by specified user_group - end */ } ?> 1 Надіслати Поділитися на інших сайтах More sharing options... GeorgyM Опубліковано: 6 лютого 2013 Автор Share Опубліковано: 6 лютого 2013 Ниче себе - сейчас попробую - это засунуть в код . Спасибо Надіслати Поділитися на інших сайтах More sharing options... GeorgyM Опубліковано: 8 лютого 2013 Автор Share Опубліковано: 8 лютого 2013 Круто все работает - ГРАНД МЕРСИ Надіслати Поділитися на інших сайтах More sharing options... 2 months later... lastrong Опубліковано: 24 квітня 2013 Share Опубліковано: 24 квітня 2013 Хороший вопрос, нашел эту тему по запросу getUsergroupId() а вот такой вопрос, как запретить менеджеру видеть при входе в админку статистику чего было продано и на сколько. Т.е. верхние 2 блока, менеджеру, а точнее, кладовщику, не нужны, надо только отмечать заказы кто забрал со склада и ставить им статус "Завершено". (это я решил способом настройки "группы пользователей" там и отметил только изменение и просмотр "Заказы"). А вот статистика нафиг ему с глаз долой. В идеале еще скрыть ему все пункты меню с глаз долой, чтоб не было соблазна хакеризмом заниматься, но думаю на основе того же алгоритма и это решается. Надіслати Поділитися на інших сайтах More sharing options... lastrong Опубліковано: 24 квітня 2013 Share Опубліковано: 24 квітня 2013 (змінено) Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее.Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Змінено 24 квітня 2013 користувачем lastrong cenzoRED Надіслати Поділитися на інших сайтах More sharing options... 1 year later... kds2001 Опубліковано: 11 червня 2014 Share Опубліковано: 11 червня 2014 Решено: Добавить ДВУХ менеджеров, с разными доступами.См предыдущий пост + мой :) if ($this->model_user_user->getUserGroupId($this->user->getId()) == 11) { $this->template = 'common/home_user.tpl'; } elseif ($this->model_user_user->getUserGroupId($this->user->getId()) == 12) { $this->template = 'common/home_K.tpl'; } else { $this->template = 'common/home.tpl'; } Надіслати Поділитися на інших сайтах More sharing options... 7 months later... Zipua Опубліковано: 7 лютого 2015 Share Опубліковано: 7 лютого 2015 Всем привет.Кто - нибудь в курсе - как можно настроить админку под менагера так, что бы он мог редактировать описание товара - но не мог его удалять или удалять товар в списке?Т.е. задача только правка текста к товару....ocStore Version 1.5.4.1 Надіслати Поділитися на інших сайтах More sharing options... AlexDW Опубліковано: 7 лютого 2015 Share Опубліковано: 7 лютого 2015 По аналогии, как выше описывали для заказов, править для товаров Чего я реально не понимаю - это самой сути хотелок "мог редактировать - но не мог удалять" :ugeek: Ну дадите вы права, не удалит, а так наредактирует (например заполнит все нулями), что итог будет ненамного лучше удаления :-D :-D :-D Не? Надіслати Поділитися на інших сайтах More sharing options... 2 months later... ltc Опубліковано: 27 квітня 2015 Share Опубліковано: 27 квітня 2015 AlexDW, Заполнит все нулями, получит предупреждение, что так делать нельзя. При рецидиве мы будем знать, что наш манагер плут и мошенник. А если он удаляет по тихому, то мы и не догадываемся ниочем. Надіслати Поділитися на інших сайтах More sharing options... 11 months later... VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Привет, странно повторил всё, 1. Скопировал header.tpl, 2. Переименовал в header_users.tpl, 3. Залил на хостинг в admin/view/template/common/header_users.tpl, 4. В папке common теперь находятся два файла header.tpl и header_users.tpl 5. В файл admin/model/user/user.php, в конце кода добавляем: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } После всех манипуляций, перезагрузки браузера и на странице магазина и в админке, вроде бы всё хорошо Но после выхода из админки пишет: Notice: Error: Could not load template /admin/view/template/common/header-usergroup.tpl! in /system/engine/controller.php on line 70 Ещё у меня вопрос: я что то не понял, а где идёт подмена header.tpl на header_users.tpl Надіслати Поділитися на інших сайтах More sharing options... VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 (змінено) Кажется понял в чём ошибка: 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } За место header-usergroup.tpl надо поставить моё название header_users.tpl !!! Просто автор поста ни где в тексте не написал, что он при переименовании файла header.tpl, назвал его header-usergroup.tpl Чем ввёл меня в лёгкое заблуждение. А вообще статья супер - долго искал в интернете ответ на свой вопрос, и только здесь получил ответ. Спасибо автору!!! Змінено 8 квітня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Krot Опубліковано: 15 червня 2016 Share Опубліковано: 15 червня 2016 а это для какой версии движка ? для 2.1 2.1 подойдёт ? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... VladisOK Опубліковано: 28 липня 2016 Share Опубліковано: 28 липня 2016 (змінено) ---------------------------------------------------------------------- to Krot: Проверенно на версии 1.5.6.4, для 2.+ не подойдёт ---------------------------------------------------------------------- Прошу специалистов помочь адаптировать это же решение, но под 2.0 + версий P.S. Считаю, что это решение должно быть по умолчанию в движке OpenCart, нет разрешения для менеджеров управлять какой либо из категорий в админке, значит и нет визуального отображения этих категорий для менеджеров. Не понимаю, из каких соображений это не сделано. Змінено 28 липня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options... VladisOK Опубліковано: 2 серпня 2016 Share Опубліковано: 2 серпня 2016 Найдено решение - http://www.opencart.com/index.php?route=extension/extension/info&extension_id=23615 Спасибо всем, особенно мне:) !!! Надіслати Поділитися на інших сайтах More sharing options... 1 year later... hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 Fatal error: Call to undefined method ModelUserUser::getUserCategories() Надіслати Поділитися на інших сайтах More sharing options... hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 В 24.04.2013 в 08:38, lastrong сказал: Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Call to undefined method ModelUserUser::getUserCategories() Когда захожу в Пользователи и нажимаю изменить права Надіслати Поділитися на інших сайтах More sharing options... 1 month later... VadimD Опубліковано: 20 грудня 2017 Share Опубліковано: 20 грудня 2017 (змінено) В 06.02.2013 в 10:57, afwollis сказал: [=== system/library/user.php ===] приводим к виду добавляем себе всё, что отделено комментариями /* [webme] deny order deletions by specified user_group - begin */ /* [webme] deny order deletions by specified user_group - end */ Подскажите пожалуйста, что конкретно прописывать system/library/user.php ? Змінено 20 грудня 2017 користувачем VadimD Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування [Решено] Настроить админку под менеджера как ? Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
GeorgyM Опубліковано: 5 лютого 2013 Автор Share Опубліковано: 5 лютого 2013 формально - я ответил на ваши вопросы и прояснил ситуацию :wink: фактически - вы не указали используемую версию движка, поэтому конкретики ждете зря :ugeek: = = = общая картина: 1) создается новая группа юзеров; 2) в контроллер и модель заказов админки (в методы удаления) добавляются проверки на принадлежность к группе. если менеджер из этой группы - передаем привет :ugeek: , если нет - обрабатываем запрос, как положено. Версия движка 1.5.4.1 Контроллер и модель заказов админки - это какие файлы - Вы не подскажите ? Пример кода такой проверки у Вас имеется ? Надіслати Поділитися на інших сайтах More sharing options... afwollis Опубліковано: 6 лютого 2013 Share Опубліковано: 6 лютого 2013 мда... забыл про группу юзеров в админке. вот так это делается: создается новая группа пользователей в админке (например pureManager), смотрится ее ID [=== admin/controller/sale/order.php ===] в метод private function validateDelete() { после if (!$this->user->hasPermission('modify', 'sale/order')) { $this->error['warning'] = $this->language->get('error_permission'); } добавляем /* [webme] deny order deletions by specified user_group - begin */ $pureManagerGroupId = 11; // вот это ID созданной группы, которой ЗАПРЕЩАЕМ удалять заказы. if ($this->user->getUsergroupId() == $pureManagerGroupId) { $this->error['warning'] = $this->language->get('error_order_deletion_denied'); } /* [webme] deny order deletions by specified user_group - end */ в языковой файл [=== admin/language/russian/sale/order.php ===] добавляем /* [webme] deny order deletions by specified user_group - begin */ $_['error_order_deletion_denied'] = 'Пользуясь моментом, хочу передать привет дяде из Бобруйска.<br />Дядя, превед!'; /* [webme] deny order deletions by specified user_group - end */ [=== system/library/user.php ===] приводим к виду добавляем себе всё, что отделено комментариями /* [webme] deny order deletions by specified user_group - begin */ /* [webme] deny order deletions by specified user_group - end */ <?php class User { private $user_id; private $username; private $permission = array(); /* [webme] deny order deletions by specified user_group - begin */ private $usergroup_id; /* [webme] deny order deletions by specified user_group - end */ public function __construct($registry) { $this->db = $registry->get('db'); $this->request = $registry->get('request'); $this->session = $registry->get('session'); if (isset($this->session->data['user_id'])) { $user_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$this->session->data['user_id'] . "' AND status = '1'"); if ($user_query->num_rows) { $this->user_id = $user_query->row['user_id']; $this->username = $user_query->row['username']; /* [webme] deny order deletions by specified user_group - begin */ $this->usergroup_id = $user_query->row['user_group_id']; /* [webme] deny order deletions by specified user_group - end */ $this->db->query("UPDATE " . DB_PREFIX . "user SET ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "' WHERE user_id = '" . (int)$this->session->data['user_id'] . "'"); $user_group_query = $this->db->query("SELECT permission FROM " . DB_PREFIX . "user_group WHERE user_group_id = '" . (int)$user_query->row['user_group_id'] . "'"); $permissions = unserialize($user_group_query->row['permission']); if (is_array($permissions)) { foreach ($permissions as $key => $value) { $this->permission[$key] = $value; } } } else { $this->logout(); } } } public function login($username, $password) { $user_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "user WHERE username = '" . $this->db->escape($username) . "' AND (password = SHA1(CONCAT(salt, SHA1(CONCAT(salt, SHA1('" . $this->db->escape($password) . "'))))) OR password = '" . $this->db->escape(md5($password)) . "') AND status = '1'"); if ($user_query->num_rows) { $this->session->data['user_id'] = $user_query->row['user_id']; $this->user_id = $user_query->row['user_id']; $this->username = $user_query->row['username']; /* [webme] deny order deletions by specified user_group - begin */ $this->usergroup_id = $user_query->row['user_group_id']; /* [webme] deny order deletions by specified user_group - end */ $user_group_query = $this->db->query("SELECT permission FROM " . DB_PREFIX . "user_group WHERE user_group_id = '" . (int)$user_query->row['user_group_id'] . "'"); $permissions = unserialize($user_group_query->row['permission']); if (is_array($permissions)) { foreach ($permissions as $key => $value) { $this->permission[$key] = $value; } } return true; } else { return false; } } public function logout() { unset($this->session->data['user_id']); $this->user_id = ''; $this->username = ''; session_destroy(); } public function hasPermission($key, $value) { if (isset($this->permission[$key])) { return in_array($value, $this->permission[$key]); } else { return false; } } public function isLogged() { return $this->user_id; } public function getId() { return $this->user_id; } public function getUserName() { return $this->username; } /* [webme] deny order deletions by specified user_group - begin */ public function getUsergroupId() { return $this->usergroup_id; } /* [webme] deny order deletions by specified user_group - end */ } ?> 1 Надіслати Поділитися на інших сайтах More sharing options... GeorgyM Опубліковано: 6 лютого 2013 Автор Share Опубліковано: 6 лютого 2013 Ниче себе - сейчас попробую - это засунуть в код . Спасибо Надіслати Поділитися на інших сайтах More sharing options... GeorgyM Опубліковано: 8 лютого 2013 Автор Share Опубліковано: 8 лютого 2013 Круто все работает - ГРАНД МЕРСИ Надіслати Поділитися на інших сайтах More sharing options... 2 months later... lastrong Опубліковано: 24 квітня 2013 Share Опубліковано: 24 квітня 2013 Хороший вопрос, нашел эту тему по запросу getUsergroupId() а вот такой вопрос, как запретить менеджеру видеть при входе в админку статистику чего было продано и на сколько. Т.е. верхние 2 блока, менеджеру, а точнее, кладовщику, не нужны, надо только отмечать заказы кто забрал со склада и ставить им статус "Завершено". (это я решил способом настройки "группы пользователей" там и отметил только изменение и просмотр "Заказы"). А вот статистика нафиг ему с глаз долой. В идеале еще скрыть ему все пункты меню с глаз долой, чтоб не было соблазна хакеризмом заниматься, но думаю на основе того же алгоритма и это решается. Надіслати Поділитися на інших сайтах More sharing options... lastrong Опубліковано: 24 квітня 2013 Share Опубліковано: 24 квітня 2013 (змінено) Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее.Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Змінено 24 квітня 2013 користувачем lastrong cenzoRED Надіслати Поділитися на інших сайтах More sharing options... 1 year later... kds2001 Опубліковано: 11 червня 2014 Share Опубліковано: 11 червня 2014 Решено: Добавить ДВУХ менеджеров, с разными доступами.См предыдущий пост + мой :) if ($this->model_user_user->getUserGroupId($this->user->getId()) == 11) { $this->template = 'common/home_user.tpl'; } elseif ($this->model_user_user->getUserGroupId($this->user->getId()) == 12) { $this->template = 'common/home_K.tpl'; } else { $this->template = 'common/home.tpl'; } Надіслати Поділитися на інших сайтах More sharing options... 7 months later... Zipua Опубліковано: 7 лютого 2015 Share Опубліковано: 7 лютого 2015 Всем привет.Кто - нибудь в курсе - как можно настроить админку под менагера так, что бы он мог редактировать описание товара - но не мог его удалять или удалять товар в списке?Т.е. задача только правка текста к товару....ocStore Version 1.5.4.1 Надіслати Поділитися на інших сайтах More sharing options... AlexDW Опубліковано: 7 лютого 2015 Share Опубліковано: 7 лютого 2015 По аналогии, как выше описывали для заказов, править для товаров Чего я реально не понимаю - это самой сути хотелок "мог редактировать - но не мог удалять" :ugeek: Ну дадите вы права, не удалит, а так наредактирует (например заполнит все нулями), что итог будет ненамного лучше удаления :-D :-D :-D Не? Надіслати Поділитися на інших сайтах More sharing options... 2 months later... ltc Опубліковано: 27 квітня 2015 Share Опубліковано: 27 квітня 2015 AlexDW, Заполнит все нулями, получит предупреждение, что так делать нельзя. При рецидиве мы будем знать, что наш манагер плут и мошенник. А если он удаляет по тихому, то мы и не догадываемся ниочем. Надіслати Поділитися на інших сайтах More sharing options... 11 months later... VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Привет, странно повторил всё, 1. Скопировал header.tpl, 2. Переименовал в header_users.tpl, 3. Залил на хостинг в admin/view/template/common/header_users.tpl, 4. В папке common теперь находятся два файла header.tpl и header_users.tpl 5. В файл admin/model/user/user.php, в конце кода добавляем: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } После всех манипуляций, перезагрузки браузера и на странице магазина и в админке, вроде бы всё хорошо Но после выхода из админки пишет: Notice: Error: Could not load template /admin/view/template/common/header-usergroup.tpl! in /system/engine/controller.php on line 70 Ещё у меня вопрос: я что то не понял, а где идёт подмена header.tpl на header_users.tpl Надіслати Поділитися на інших сайтах More sharing options... VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 (змінено) Кажется понял в чём ошибка: 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } За место header-usergroup.tpl надо поставить моё название header_users.tpl !!! Просто автор поста ни где в тексте не написал, что он при переименовании файла header.tpl, назвал его header-usergroup.tpl Чем ввёл меня в лёгкое заблуждение. А вообще статья супер - долго искал в интернете ответ на свой вопрос, и только здесь получил ответ. Спасибо автору!!! Змінено 8 квітня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Krot Опубліковано: 15 червня 2016 Share Опубліковано: 15 червня 2016 а это для какой версии движка ? для 2.1 2.1 подойдёт ? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... VladisOK Опубліковано: 28 липня 2016 Share Опубліковано: 28 липня 2016 (змінено) ---------------------------------------------------------------------- to Krot: Проверенно на версии 1.5.6.4, для 2.+ не подойдёт ---------------------------------------------------------------------- Прошу специалистов помочь адаптировать это же решение, но под 2.0 + версий P.S. Считаю, что это решение должно быть по умолчанию в движке OpenCart, нет разрешения для менеджеров управлять какой либо из категорий в админке, значит и нет визуального отображения этих категорий для менеджеров. Не понимаю, из каких соображений это не сделано. Змінено 28 липня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options... VladisOK Опубліковано: 2 серпня 2016 Share Опубліковано: 2 серпня 2016 Найдено решение - http://www.opencart.com/index.php?route=extension/extension/info&extension_id=23615 Спасибо всем, особенно мне:) !!! Надіслати Поділитися на інших сайтах More sharing options... 1 year later... hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 Fatal error: Call to undefined method ModelUserUser::getUserCategories() Надіслати Поділитися на інших сайтах More sharing options... hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 В 24.04.2013 в 08:38, lastrong сказал: Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Call to undefined method ModelUserUser::getUserCategories() Когда захожу в Пользователи и нажимаю изменить права Надіслати Поділитися на інших сайтах More sharing options... 1 month later... VadimD Опубліковано: 20 грудня 2017 Share Опубліковано: 20 грудня 2017 (змінено) В 06.02.2013 в 10:57, afwollis сказал: [=== system/library/user.php ===] приводим к виду добавляем себе всё, что отделено комментариями /* [webme] deny order deletions by specified user_group - begin */ /* [webme] deny order deletions by specified user_group - end */ Подскажите пожалуйста, что конкретно прописывать system/library/user.php ? Змінено 20 грудня 2017 користувачем VadimD Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування [Решено] Настроить админку под менеджера как ? Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000 × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
afwollis Опубліковано: 6 лютого 2013 Share Опубліковано: 6 лютого 2013 мда... забыл про группу юзеров в админке. вот так это делается: создается новая группа пользователей в админке (например pureManager), смотрится ее ID [=== admin/controller/sale/order.php ===] в метод private function validateDelete() { после if (!$this->user->hasPermission('modify', 'sale/order')) { $this->error['warning'] = $this->language->get('error_permission'); } добавляем /* [webme] deny order deletions by specified user_group - begin */ $pureManagerGroupId = 11; // вот это ID созданной группы, которой ЗАПРЕЩАЕМ удалять заказы. if ($this->user->getUsergroupId() == $pureManagerGroupId) { $this->error['warning'] = $this->language->get('error_order_deletion_denied'); } /* [webme] deny order deletions by specified user_group - end */ в языковой файл [=== admin/language/russian/sale/order.php ===] добавляем /* [webme] deny order deletions by specified user_group - begin */ $_['error_order_deletion_denied'] = 'Пользуясь моментом, хочу передать привет дяде из Бобруйска.<br />Дядя, превед!'; /* [webme] deny order deletions by specified user_group - end */ [=== system/library/user.php ===] приводим к виду добавляем себе всё, что отделено комментариями /* [webme] deny order deletions by specified user_group - begin */ /* [webme] deny order deletions by specified user_group - end */ <?php class User { private $user_id; private $username; private $permission = array(); /* [webme] deny order deletions by specified user_group - begin */ private $usergroup_id; /* [webme] deny order deletions by specified user_group - end */ public function __construct($registry) { $this->db = $registry->get('db'); $this->request = $registry->get('request'); $this->session = $registry->get('session'); if (isset($this->session->data['user_id'])) { $user_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$this->session->data['user_id'] . "' AND status = '1'"); if ($user_query->num_rows) { $this->user_id = $user_query->row['user_id']; $this->username = $user_query->row['username']; /* [webme] deny order deletions by specified user_group - begin */ $this->usergroup_id = $user_query->row['user_group_id']; /* [webme] deny order deletions by specified user_group - end */ $this->db->query("UPDATE " . DB_PREFIX . "user SET ip = '" . $this->db->escape($this->request->server['REMOTE_ADDR']) . "' WHERE user_id = '" . (int)$this->session->data['user_id'] . "'"); $user_group_query = $this->db->query("SELECT permission FROM " . DB_PREFIX . "user_group WHERE user_group_id = '" . (int)$user_query->row['user_group_id'] . "'"); $permissions = unserialize($user_group_query->row['permission']); if (is_array($permissions)) { foreach ($permissions as $key => $value) { $this->permission[$key] = $value; } } } else { $this->logout(); } } } public function login($username, $password) { $user_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "user WHERE username = '" . $this->db->escape($username) . "' AND (password = SHA1(CONCAT(salt, SHA1(CONCAT(salt, SHA1('" . $this->db->escape($password) . "'))))) OR password = '" . $this->db->escape(md5($password)) . "') AND status = '1'"); if ($user_query->num_rows) { $this->session->data['user_id'] = $user_query->row['user_id']; $this->user_id = $user_query->row['user_id']; $this->username = $user_query->row['username']; /* [webme] deny order deletions by specified user_group - begin */ $this->usergroup_id = $user_query->row['user_group_id']; /* [webme] deny order deletions by specified user_group - end */ $user_group_query = $this->db->query("SELECT permission FROM " . DB_PREFIX . "user_group WHERE user_group_id = '" . (int)$user_query->row['user_group_id'] . "'"); $permissions = unserialize($user_group_query->row['permission']); if (is_array($permissions)) { foreach ($permissions as $key => $value) { $this->permission[$key] = $value; } } return true; } else { return false; } } public function logout() { unset($this->session->data['user_id']); $this->user_id = ''; $this->username = ''; session_destroy(); } public function hasPermission($key, $value) { if (isset($this->permission[$key])) { return in_array($value, $this->permission[$key]); } else { return false; } } public function isLogged() { return $this->user_id; } public function getId() { return $this->user_id; } public function getUserName() { return $this->username; } /* [webme] deny order deletions by specified user_group - begin */ public function getUsergroupId() { return $this->usergroup_id; } /* [webme] deny order deletions by specified user_group - end */ } ?> 1 Надіслати Поділитися на інших сайтах More sharing options... GeorgyM Опубліковано: 6 лютого 2013 Автор Share Опубліковано: 6 лютого 2013 Ниче себе - сейчас попробую - это засунуть в код . Спасибо Надіслати Поділитися на інших сайтах More sharing options... GeorgyM Опубліковано: 8 лютого 2013 Автор Share Опубліковано: 8 лютого 2013 Круто все работает - ГРАНД МЕРСИ Надіслати Поділитися на інших сайтах More sharing options... 2 months later... lastrong Опубліковано: 24 квітня 2013 Share Опубліковано: 24 квітня 2013 Хороший вопрос, нашел эту тему по запросу getUsergroupId() а вот такой вопрос, как запретить менеджеру видеть при входе в админку статистику чего было продано и на сколько. Т.е. верхние 2 блока, менеджеру, а точнее, кладовщику, не нужны, надо только отмечать заказы кто забрал со склада и ставить им статус "Завершено". (это я решил способом настройки "группы пользователей" там и отметил только изменение и просмотр "Заказы"). А вот статистика нафиг ему с глаз долой. В идеале еще скрыть ему все пункты меню с глаз долой, чтоб не было соблазна хакеризмом заниматься, но думаю на основе того же алгоритма и это решается. Надіслати Поділитися на інших сайтах More sharing options... lastrong Опубліковано: 24 квітня 2013 Share Опубліковано: 24 квітня 2013 (змінено) Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее.Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Змінено 24 квітня 2013 користувачем lastrong cenzoRED Надіслати Поділитися на інших сайтах More sharing options... 1 year later... kds2001 Опубліковано: 11 червня 2014 Share Опубліковано: 11 червня 2014 Решено: Добавить ДВУХ менеджеров, с разными доступами.См предыдущий пост + мой :) if ($this->model_user_user->getUserGroupId($this->user->getId()) == 11) { $this->template = 'common/home_user.tpl'; } elseif ($this->model_user_user->getUserGroupId($this->user->getId()) == 12) { $this->template = 'common/home_K.tpl'; } else { $this->template = 'common/home.tpl'; } Надіслати Поділитися на інших сайтах More sharing options... 7 months later... Zipua Опубліковано: 7 лютого 2015 Share Опубліковано: 7 лютого 2015 Всем привет.Кто - нибудь в курсе - как можно настроить админку под менагера так, что бы он мог редактировать описание товара - но не мог его удалять или удалять товар в списке?Т.е. задача только правка текста к товару....ocStore Version 1.5.4.1 Надіслати Поділитися на інших сайтах More sharing options... AlexDW Опубліковано: 7 лютого 2015 Share Опубліковано: 7 лютого 2015 По аналогии, как выше описывали для заказов, править для товаров Чего я реально не понимаю - это самой сути хотелок "мог редактировать - но не мог удалять" :ugeek: Ну дадите вы права, не удалит, а так наредактирует (например заполнит все нулями), что итог будет ненамного лучше удаления :-D :-D :-D Не? Надіслати Поділитися на інших сайтах More sharing options... 2 months later... ltc Опубліковано: 27 квітня 2015 Share Опубліковано: 27 квітня 2015 AlexDW, Заполнит все нулями, получит предупреждение, что так делать нельзя. При рецидиве мы будем знать, что наш манагер плут и мошенник. А если он удаляет по тихому, то мы и не догадываемся ниочем. Надіслати Поділитися на інших сайтах More sharing options... 11 months later... VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Привет, странно повторил всё, 1. Скопировал header.tpl, 2. Переименовал в header_users.tpl, 3. Залил на хостинг в admin/view/template/common/header_users.tpl, 4. В папке common теперь находятся два файла header.tpl и header_users.tpl 5. В файл admin/model/user/user.php, в конце кода добавляем: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } После всех манипуляций, перезагрузки браузера и на странице магазина и в админке, вроде бы всё хорошо Но после выхода из админки пишет: Notice: Error: Could not load template /admin/view/template/common/header-usergroup.tpl! in /system/engine/controller.php on line 70 Ещё у меня вопрос: я что то не понял, а где идёт подмена header.tpl на header_users.tpl Надіслати Поділитися на інших сайтах More sharing options... VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 (змінено) Кажется понял в чём ошибка: 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } За место header-usergroup.tpl надо поставить моё название header_users.tpl !!! Просто автор поста ни где в тексте не написал, что он при переименовании файла header.tpl, назвал его header-usergroup.tpl Чем ввёл меня в лёгкое заблуждение. А вообще статья супер - долго искал в интернете ответ на свой вопрос, и только здесь получил ответ. Спасибо автору!!! Змінено 8 квітня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Krot Опубліковано: 15 червня 2016 Share Опубліковано: 15 червня 2016 а это для какой версии движка ? для 2.1 2.1 подойдёт ? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... VladisOK Опубліковано: 28 липня 2016 Share Опубліковано: 28 липня 2016 (змінено) ---------------------------------------------------------------------- to Krot: Проверенно на версии 1.5.6.4, для 2.+ не подойдёт ---------------------------------------------------------------------- Прошу специалистов помочь адаптировать это же решение, но под 2.0 + версий P.S. Считаю, что это решение должно быть по умолчанию в движке OpenCart, нет разрешения для менеджеров управлять какой либо из категорий в админке, значит и нет визуального отображения этих категорий для менеджеров. Не понимаю, из каких соображений это не сделано. Змінено 28 липня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options... VladisOK Опубліковано: 2 серпня 2016 Share Опубліковано: 2 серпня 2016 Найдено решение - http://www.opencart.com/index.php?route=extension/extension/info&extension_id=23615 Спасибо всем, особенно мне:) !!! Надіслати Поділитися на інших сайтах More sharing options... 1 year later... hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 Fatal error: Call to undefined method ModelUserUser::getUserCategories() Надіслати Поділитися на інших сайтах More sharing options... hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 В 24.04.2013 в 08:38, lastrong сказал: Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Call to undefined method ModelUserUser::getUserCategories() Когда захожу в Пользователи и нажимаю изменить права Надіслати Поділитися на інших сайтах More sharing options... 1 month later... VadimD Опубліковано: 20 грудня 2017 Share Опубліковано: 20 грудня 2017 (змінено) В 06.02.2013 в 10:57, afwollis сказал: [=== system/library/user.php ===] приводим к виду добавляем себе всё, что отделено комментариями /* [webme] deny order deletions by specified user_group - begin */ /* [webme] deny order deletions by specified user_group - end */ Подскажите пожалуйста, что конкретно прописывать system/library/user.php ? Змінено 20 грудня 2017 користувачем VadimD Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування [Решено] Настроить админку под менеджера как ? Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення PRICE MASTER - Модуль імпорту/експорту товарів, парсинг, переклад, генерація текстів, редактор каталогу та багато іншого Автор: ScriptBrains 1.0 Синхронізація Замовлень Rozetka.ua та Opencart Автор: sinco Product Manipulator Автор: Hiperlynx007 Видалення дублікатів товарів для OpenCart Автор: Hatshypsut Вибір категорій і виробників для "Знайшли дешевше" шаблону Upstore Автор: Flint2000
GeorgyM Опубліковано: 6 лютого 2013 Автор Share Опубліковано: 6 лютого 2013 Ниче себе - сейчас попробую - это засунуть в код . Спасибо Надіслати Поділитися на інших сайтах More sharing options... GeorgyM Опубліковано: 8 лютого 2013 Автор Share Опубліковано: 8 лютого 2013 Круто все работает - ГРАНД МЕРСИ Надіслати Поділитися на інших сайтах More sharing options... 2 months later... lastrong Опубліковано: 24 квітня 2013 Share Опубліковано: 24 квітня 2013 Хороший вопрос, нашел эту тему по запросу getUsergroupId() а вот такой вопрос, как запретить менеджеру видеть при входе в админку статистику чего было продано и на сколько. Т.е. верхние 2 блока, менеджеру, а точнее, кладовщику, не нужны, надо только отмечать заказы кто забрал со склада и ставить им статус "Завершено". (это я решил способом настройки "группы пользователей" там и отметил только изменение и просмотр "Заказы"). А вот статистика нафиг ему с глаз долой. В идеале еще скрыть ему все пункты меню с глаз долой, чтоб не было соблазна хакеризмом заниматься, но думаю на основе того же алгоритма и это решается. Надіслати Поділитися на інших сайтах More sharing options... lastrong Опубліковано: 24 квітня 2013 Share Опубліковано: 24 квітня 2013 (змінено) Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее.Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Змінено 24 квітня 2013 користувачем lastrong cenzoRED Надіслати Поділитися на інших сайтах More sharing options... 1 year later... kds2001 Опубліковано: 11 червня 2014 Share Опубліковано: 11 червня 2014 Решено: Добавить ДВУХ менеджеров, с разными доступами.См предыдущий пост + мой :) if ($this->model_user_user->getUserGroupId($this->user->getId()) == 11) { $this->template = 'common/home_user.tpl'; } elseif ($this->model_user_user->getUserGroupId($this->user->getId()) == 12) { $this->template = 'common/home_K.tpl'; } else { $this->template = 'common/home.tpl'; } Надіслати Поділитися на інших сайтах More sharing options... 7 months later... Zipua Опубліковано: 7 лютого 2015 Share Опубліковано: 7 лютого 2015 Всем привет.Кто - нибудь в курсе - как можно настроить админку под менагера так, что бы он мог редактировать описание товара - но не мог его удалять или удалять товар в списке?Т.е. задача только правка текста к товару....ocStore Version 1.5.4.1 Надіслати Поділитися на інших сайтах More sharing options... AlexDW Опубліковано: 7 лютого 2015 Share Опубліковано: 7 лютого 2015 По аналогии, как выше описывали для заказов, править для товаров Чего я реально не понимаю - это самой сути хотелок "мог редактировать - но не мог удалять" :ugeek: Ну дадите вы права, не удалит, а так наредактирует (например заполнит все нулями), что итог будет ненамного лучше удаления :-D :-D :-D Не? Надіслати Поділитися на інших сайтах More sharing options... 2 months later... ltc Опубліковано: 27 квітня 2015 Share Опубліковано: 27 квітня 2015 AlexDW, Заполнит все нулями, получит предупреждение, что так делать нельзя. При рецидиве мы будем знать, что наш манагер плут и мошенник. А если он удаляет по тихому, то мы и не догадываемся ниочем. Надіслати Поділитися на інших сайтах More sharing options... 11 months later... VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Привет, странно повторил всё, 1. Скопировал header.tpl, 2. Переименовал в header_users.tpl, 3. Залил на хостинг в admin/view/template/common/header_users.tpl, 4. В папке common теперь находятся два файла header.tpl и header_users.tpl 5. В файл admin/model/user/user.php, в конце кода добавляем: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } После всех манипуляций, перезагрузки браузера и на странице магазина и в админке, вроде бы всё хорошо Но после выхода из админки пишет: Notice: Error: Could not load template /admin/view/template/common/header-usergroup.tpl! in /system/engine/controller.php on line 70 Ещё у меня вопрос: я что то не понял, а где идёт подмена header.tpl на header_users.tpl Надіслати Поділитися на інших сайтах More sharing options... VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 (змінено) Кажется понял в чём ошибка: 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } За место header-usergroup.tpl надо поставить моё название header_users.tpl !!! Просто автор поста ни где в тексте не написал, что он при переименовании файла header.tpl, назвал его header-usergroup.tpl Чем ввёл меня в лёгкое заблуждение. А вообще статья супер - долго искал в интернете ответ на свой вопрос, и только здесь получил ответ. Спасибо автору!!! Змінено 8 квітня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Krot Опубліковано: 15 червня 2016 Share Опубліковано: 15 червня 2016 а это для какой версии движка ? для 2.1 2.1 подойдёт ? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... VladisOK Опубліковано: 28 липня 2016 Share Опубліковано: 28 липня 2016 (змінено) ---------------------------------------------------------------------- to Krot: Проверенно на версии 1.5.6.4, для 2.+ не подойдёт ---------------------------------------------------------------------- Прошу специалистов помочь адаптировать это же решение, но под 2.0 + версий P.S. Считаю, что это решение должно быть по умолчанию в движке OpenCart, нет разрешения для менеджеров управлять какой либо из категорий в админке, значит и нет визуального отображения этих категорий для менеджеров. Не понимаю, из каких соображений это не сделано. Змінено 28 липня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options... VladisOK Опубліковано: 2 серпня 2016 Share Опубліковано: 2 серпня 2016 Найдено решение - http://www.opencart.com/index.php?route=extension/extension/info&extension_id=23615 Спасибо всем, особенно мне:) !!! Надіслати Поділитися на інших сайтах More sharing options... 1 year later... hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 Fatal error: Call to undefined method ModelUserUser::getUserCategories() Надіслати Поділитися на інших сайтах More sharing options... hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 В 24.04.2013 в 08:38, lastrong сказал: Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Call to undefined method ModelUserUser::getUserCategories() Когда захожу в Пользователи и нажимаю изменить права Надіслати Поділитися на інших сайтах More sharing options... 1 month later... VadimD Опубліковано: 20 грудня 2017 Share Опубліковано: 20 грудня 2017 (змінено) В 06.02.2013 в 10:57, afwollis сказал: [=== system/library/user.php ===] приводим к виду добавляем себе всё, что отделено комментариями /* [webme] deny order deletions by specified user_group - begin */ /* [webme] deny order deletions by specified user_group - end */ Подскажите пожалуйста, что конкретно прописывать system/library/user.php ? Змінено 20 грудня 2017 користувачем VadimD Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування [Решено] Настроить админку под менеджера как ?
GeorgyM Опубліковано: 8 лютого 2013 Автор Share Опубліковано: 8 лютого 2013 Круто все работает - ГРАНД МЕРСИ Надіслати Поділитися на інших сайтах More sharing options... 2 months later... lastrong Опубліковано: 24 квітня 2013 Share Опубліковано: 24 квітня 2013 Хороший вопрос, нашел эту тему по запросу getUsergroupId() а вот такой вопрос, как запретить менеджеру видеть при входе в админку статистику чего было продано и на сколько. Т.е. верхние 2 блока, менеджеру, а точнее, кладовщику, не нужны, надо только отмечать заказы кто забрал со склада и ставить им статус "Завершено". (это я решил способом настройки "группы пользователей" там и отметил только изменение и просмотр "Заказы"). А вот статистика нафиг ему с глаз долой. В идеале еще скрыть ему все пункты меню с глаз долой, чтоб не было соблазна хакеризмом заниматься, но думаю на основе того же алгоритма и это решается. Надіслати Поділитися на інших сайтах More sharing options... lastrong Опубліковано: 24 квітня 2013 Share Опубліковано: 24 квітня 2013 (змінено) Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее.Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Змінено 24 квітня 2013 користувачем lastrong cenzoRED Надіслати Поділитися на інших сайтах More sharing options... 1 year later... kds2001 Опубліковано: 11 червня 2014 Share Опубліковано: 11 червня 2014 Решено: Добавить ДВУХ менеджеров, с разными доступами.См предыдущий пост + мой :) if ($this->model_user_user->getUserGroupId($this->user->getId()) == 11) { $this->template = 'common/home_user.tpl'; } elseif ($this->model_user_user->getUserGroupId($this->user->getId()) == 12) { $this->template = 'common/home_K.tpl'; } else { $this->template = 'common/home.tpl'; } Надіслати Поділитися на інших сайтах More sharing options... 7 months later... Zipua Опубліковано: 7 лютого 2015 Share Опубліковано: 7 лютого 2015 Всем привет.Кто - нибудь в курсе - как можно настроить админку под менагера так, что бы он мог редактировать описание товара - но не мог его удалять или удалять товар в списке?Т.е. задача только правка текста к товару....ocStore Version 1.5.4.1 Надіслати Поділитися на інших сайтах More sharing options... AlexDW Опубліковано: 7 лютого 2015 Share Опубліковано: 7 лютого 2015 По аналогии, как выше описывали для заказов, править для товаров Чего я реально не понимаю - это самой сути хотелок "мог редактировать - но не мог удалять" :ugeek: Ну дадите вы права, не удалит, а так наредактирует (например заполнит все нулями), что итог будет ненамного лучше удаления :-D :-D :-D Не? Надіслати Поділитися на інших сайтах More sharing options... 2 months later... ltc Опубліковано: 27 квітня 2015 Share Опубліковано: 27 квітня 2015 AlexDW, Заполнит все нулями, получит предупреждение, что так делать нельзя. При рецидиве мы будем знать, что наш манагер плут и мошенник. А если он удаляет по тихому, то мы и не догадываемся ниочем. Надіслати Поділитися на інших сайтах More sharing options... 11 months later... VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Привет, странно повторил всё, 1. Скопировал header.tpl, 2. Переименовал в header_users.tpl, 3. Залил на хостинг в admin/view/template/common/header_users.tpl, 4. В папке common теперь находятся два файла header.tpl и header_users.tpl 5. В файл admin/model/user/user.php, в конце кода добавляем: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } После всех манипуляций, перезагрузки браузера и на странице магазина и в админке, вроде бы всё хорошо Но после выхода из админки пишет: Notice: Error: Could not load template /admin/view/template/common/header-usergroup.tpl! in /system/engine/controller.php on line 70 Ещё у меня вопрос: я что то не понял, а где идёт подмена header.tpl на header_users.tpl Надіслати Поділитися на інших сайтах More sharing options... VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 (змінено) Кажется понял в чём ошибка: 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } За место header-usergroup.tpl надо поставить моё название header_users.tpl !!! Просто автор поста ни где в тексте не написал, что он при переименовании файла header.tpl, назвал его header-usergroup.tpl Чем ввёл меня в лёгкое заблуждение. А вообще статья супер - долго искал в интернете ответ на свой вопрос, и только здесь получил ответ. Спасибо автору!!! Змінено 8 квітня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Krot Опубліковано: 15 червня 2016 Share Опубліковано: 15 червня 2016 а это для какой версии движка ? для 2.1 2.1 подойдёт ? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... VladisOK Опубліковано: 28 липня 2016 Share Опубліковано: 28 липня 2016 (змінено) ---------------------------------------------------------------------- to Krot: Проверенно на версии 1.5.6.4, для 2.+ не подойдёт ---------------------------------------------------------------------- Прошу специалистов помочь адаптировать это же решение, но под 2.0 + версий P.S. Считаю, что это решение должно быть по умолчанию в движке OpenCart, нет разрешения для менеджеров управлять какой либо из категорий в админке, значит и нет визуального отображения этих категорий для менеджеров. Не понимаю, из каких соображений это не сделано. Змінено 28 липня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options... VladisOK Опубліковано: 2 серпня 2016 Share Опубліковано: 2 серпня 2016 Найдено решение - http://www.opencart.com/index.php?route=extension/extension/info&extension_id=23615 Спасибо всем, особенно мне:) !!! Надіслати Поділитися на інших сайтах More sharing options... 1 year later... hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 Fatal error: Call to undefined method ModelUserUser::getUserCategories() Надіслати Поділитися на інших сайтах More sharing options... hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 В 24.04.2013 в 08:38, lastrong сказал: Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Call to undefined method ModelUserUser::getUserCategories() Когда захожу в Пользователи и нажимаю изменить права Надіслати Поділитися на інших сайтах More sharing options... 1 month later... VadimD Опубліковано: 20 грудня 2017 Share Опубліковано: 20 грудня 2017 (змінено) В 06.02.2013 в 10:57, afwollis сказал: [=== system/library/user.php ===] приводим к виду добавляем себе всё, что отделено комментариями /* [webme] deny order deletions by specified user_group - begin */ /* [webme] deny order deletions by specified user_group - end */ Подскажите пожалуйста, что конкретно прописывать system/library/user.php ? Змінено 20 грудня 2017 користувачем VadimD Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
lastrong Опубліковано: 24 квітня 2013 Share Опубліковано: 24 квітня 2013 Хороший вопрос, нашел эту тему по запросу getUsergroupId() а вот такой вопрос, как запретить менеджеру видеть при входе в админку статистику чего было продано и на сколько. Т.е. верхние 2 блока, менеджеру, а точнее, кладовщику, не нужны, надо только отмечать заказы кто забрал со склада и ставить им статус "Завершено". (это я решил способом настройки "группы пользователей" там и отметил только изменение и просмотр "Заказы"). А вот статистика нафиг ему с глаз долой. В идеале еще скрыть ему все пункты меню с глаз долой, чтоб не было соблазна хакеризмом заниматься, но думаю на основе того же алгоритма и это решается. Надіслати Поділитися на інших сайтах More sharing options...
lastrong Опубліковано: 24 квітня 2013 Share Опубліковано: 24 квітня 2013 (змінено) Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее.Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Змінено 24 квітня 2013 користувачем lastrong cenzoRED Надіслати Поділитися на інших сайтах More sharing options...
kds2001 Опубліковано: 11 червня 2014 Share Опубліковано: 11 червня 2014 Решено: Добавить ДВУХ менеджеров, с разными доступами.См предыдущий пост + мой :) if ($this->model_user_user->getUserGroupId($this->user->getId()) == 11) { $this->template = 'common/home_user.tpl'; } elseif ($this->model_user_user->getUserGroupId($this->user->getId()) == 12) { $this->template = 'common/home_K.tpl'; } else { $this->template = 'common/home.tpl'; } Надіслати Поділитися на інших сайтах More sharing options...
Zipua Опубліковано: 7 лютого 2015 Share Опубліковано: 7 лютого 2015 Всем привет.Кто - нибудь в курсе - как можно настроить админку под менагера так, что бы он мог редактировать описание товара - но не мог его удалять или удалять товар в списке?Т.е. задача только правка текста к товару....ocStore Version 1.5.4.1 Надіслати Поділитися на інших сайтах More sharing options...
AlexDW Опубліковано: 7 лютого 2015 Share Опубліковано: 7 лютого 2015 По аналогии, как выше описывали для заказов, править для товаров Чего я реально не понимаю - это самой сути хотелок "мог редактировать - но не мог удалять" :ugeek: Ну дадите вы права, не удалит, а так наредактирует (например заполнит все нулями), что итог будет ненамного лучше удаления :-D :-D :-D Не? Надіслати Поділитися на інших сайтах More sharing options... 2 months later... ltc Опубліковано: 27 квітня 2015 Share Опубліковано: 27 квітня 2015 AlexDW, Заполнит все нулями, получит предупреждение, что так делать нельзя. При рецидиве мы будем знать, что наш манагер плут и мошенник. А если он удаляет по тихому, то мы и не догадываемся ниочем. Надіслати Поділитися на інших сайтах More sharing options... 11 months later... VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Привет, странно повторил всё, 1. Скопировал header.tpl, 2. Переименовал в header_users.tpl, 3. Залил на хостинг в admin/view/template/common/header_users.tpl, 4. В папке common теперь находятся два файла header.tpl и header_users.tpl 5. В файл admin/model/user/user.php, в конце кода добавляем: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } После всех манипуляций, перезагрузки браузера и на странице магазина и в админке, вроде бы всё хорошо Но после выхода из админки пишет: Notice: Error: Could not load template /admin/view/template/common/header-usergroup.tpl! in /system/engine/controller.php on line 70 Ещё у меня вопрос: я что то не понял, а где идёт подмена header.tpl на header_users.tpl Надіслати Поділитися на інших сайтах More sharing options... VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 (змінено) Кажется понял в чём ошибка: 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } За место header-usergroup.tpl надо поставить моё название header_users.tpl !!! Просто автор поста ни где в тексте не написал, что он при переименовании файла header.tpl, назвал его header-usergroup.tpl Чем ввёл меня в лёгкое заблуждение. А вообще статья супер - долго искал в интернете ответ на свой вопрос, и только здесь получил ответ. Спасибо автору!!! Змінено 8 квітня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options... 2 months later... Krot Опубліковано: 15 червня 2016 Share Опубліковано: 15 червня 2016 а это для какой версии движка ? для 2.1 2.1 подойдёт ? Надіслати Поділитися на інших сайтах More sharing options... 1 month later... VladisOK Опубліковано: 28 липня 2016 Share Опубліковано: 28 липня 2016 (змінено) ---------------------------------------------------------------------- to Krot: Проверенно на версии 1.5.6.4, для 2.+ не подойдёт ---------------------------------------------------------------------- Прошу специалистов помочь адаптировать это же решение, но под 2.0 + версий P.S. Считаю, что это решение должно быть по умолчанию в движке OpenCart, нет разрешения для менеджеров управлять какой либо из категорий в админке, значит и нет визуального отображения этих категорий для менеджеров. Не понимаю, из каких соображений это не сделано. Змінено 28 липня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options... VladisOK Опубліковано: 2 серпня 2016 Share Опубліковано: 2 серпня 2016 Найдено решение - http://www.opencart.com/index.php?route=extension/extension/info&extension_id=23615 Спасибо всем, особенно мне:) !!! Надіслати Поділитися на інших сайтах More sharing options... 1 year later... hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 Fatal error: Call to undefined method ModelUserUser::getUserCategories() Надіслати Поділитися на інших сайтах More sharing options... hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 В 24.04.2013 в 08:38, lastrong сказал: Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Call to undefined method ModelUserUser::getUserCategories() Когда захожу в Пользователи и нажимаю изменить права Надіслати Поділитися на інших сайтах More sharing options... 1 month later... VadimD Опубліковано: 20 грудня 2017 Share Опубліковано: 20 грудня 2017 (змінено) В 06.02.2013 в 10:57, afwollis сказал: [=== system/library/user.php ===] приводим к виду добавляем себе всё, что отделено комментариями /* [webme] deny order deletions by specified user_group - begin */ /* [webme] deny order deletions by specified user_group - end */ Подскажите пожалуйста, что конкретно прописывать system/library/user.php ? Змінено 20 грудня 2017 користувачем VadimD Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
ltc Опубліковано: 27 квітня 2015 Share Опубліковано: 27 квітня 2015 AlexDW, Заполнит все нулями, получит предупреждение, что так делать нельзя. При рецидиве мы будем знать, что наш манагер плут и мошенник. А если он удаляет по тихому, то мы и не догадываемся ниочем. Надіслати Поділитися на інших сайтах More sharing options...
VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Привет, странно повторил всё, 1. Скопировал header.tpl, 2. Переименовал в header_users.tpl, 3. Залил на хостинг в admin/view/template/common/header_users.tpl, 4. В папке common теперь находятся два файла header.tpl и header_users.tpl 5. В файл admin/model/user/user.php, в конце кода добавляем: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } После всех манипуляций, перезагрузки браузера и на странице магазина и в админке, вроде бы всё хорошо Но после выхода из админки пишет: Notice: Error: Could not load template /admin/view/template/common/header-usergroup.tpl! in /system/engine/controller.php on line 70 Ещё у меня вопрос: я что то не понял, а где идёт подмена header.tpl на header_users.tpl Надіслати Поділитися на інших сайтах More sharing options...
VladisOK Опубліковано: 8 квітня 2016 Share Опубліковано: 8 квітня 2016 (змінено) Кажется понял в чём ошибка: 6. В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } За место header-usergroup.tpl надо поставить моё название header_users.tpl !!! Просто автор поста ни где в тексте не написал, что он при переименовании файла header.tpl, назвал его header-usergroup.tpl Чем ввёл меня в лёгкое заблуждение. А вообще статья супер - долго искал в интернете ответ на свой вопрос, и только здесь получил ответ. Спасибо автору!!! Змінено 8 квітня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options...
Krot Опубліковано: 15 червня 2016 Share Опубліковано: 15 червня 2016 а это для какой версии движка ? для 2.1 2.1 подойдёт ? Надіслати Поділитися на інших сайтах More sharing options...
VladisOK Опубліковано: 28 липня 2016 Share Опубліковано: 28 липня 2016 (змінено) ---------------------------------------------------------------------- to Krot: Проверенно на версии 1.5.6.4, для 2.+ не подойдёт ---------------------------------------------------------------------- Прошу специалистов помочь адаптировать это же решение, но под 2.0 + версий P.S. Считаю, что это решение должно быть по умолчанию в движке OpenCart, нет разрешения для менеджеров управлять какой либо из категорий в админке, значит и нет визуального отображения этих категорий для менеджеров. Не понимаю, из каких соображений это не сделано. Змінено 28 липня 2016 користувачем VladisOK Надіслати Поділитися на інших сайтах More sharing options...
VladisOK Опубліковано: 2 серпня 2016 Share Опубліковано: 2 серпня 2016 Найдено решение - http://www.opencart.com/index.php?route=extension/extension/info&extension_id=23615 Спасибо всем, особенно мне:) !!! Надіслати Поділитися на інших сайтах More sharing options...
hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 Fatal error: Call to undefined method ModelUserUser::getUserCategories() Надіслати Поділитися на інших сайтах More sharing options...
hervam Опубліковано: 20 жовтня 2017 Share Опубліковано: 20 жовтня 2017 В 24.04.2013 в 08:38, lastrong сказал: Так, на второй вопрос нашел ответ {на просторах тырнета} соответственно, запилил по этому же принципу и ответ на первый вопрос. Как скрыть меню. Берете файл шаблона админки header.tpl (admin/view/template/common/header.tpl). На основе него создаете новый шаблон, предварительно удалив из него все лишнее. Затем, в файл admin/model/user/user.php добавляете код: public function getUserGroupId($user_id) { $query = $this->db->query("SELECT DISTINCT user_group_id FROM " . DB_PREFIX . "user WHERE user_id = '" . (int)$user_id . "'"); if(isset($user_id)) return $query->row['user_group_id']; } В файле admin/controller/common/header.php ищете: $this->template = 'common/header.tpl'; И заменяете на: $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/header.tpl'; } else { $this->template = 'common/header-usergroup.tpl'; } Теперь как скрыть статистику. Так же, переименовал файл home-usergroup.tpl и соответственно, повырезал оттуда блоки со статистикой (зато туда теперь можно вместить инструкцию или встроить пасьянс на флеше, хе-хе) В файле admin/controller/common/home.php ищете: $this->template = 'common/home.tpl'; заменяем на это (функция опредедления уже внесена выше в файле user.php) $this->load->model('user/user'); if ($this->model_user_user->getUserGroupId($this->user->getId()) == 1) { $this->template = 'common/home-usergroup.tpl'; } else { $this->template = 'common/home.tpl'; } Вуаля, все заработало. Call to undefined method ModelUserUser::getUserCategories() Когда захожу в Пользователи и нажимаю изменить права Надіслати Поділитися на інших сайтах More sharing options...
VadimD Опубліковано: 20 грудня 2017 Share Опубліковано: 20 грудня 2017 (змінено) В 06.02.2013 в 10:57, afwollis сказал: [=== system/library/user.php ===] приводим к виду добавляем себе всё, что отделено комментариями /* [webme] deny order deletions by specified user_group - begin */ /* [webme] deny order deletions by specified user_group - end */ Подскажите пожалуйста, что конкретно прописывать system/library/user.php ? Змінено 20 грудня 2017 користувачем VadimD Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts