Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено?..] Доступ менеджеру в админку


forward7794

Recommended Posts

система - пользователи - группы пользователей - создайте новую группу с доступами к просмотру и изменению к:

все catalog/...

common/filemanager

(возможно еще какие-то нужны будут, тестируйте)

 

потом система - пользователи - пользователи и создать юзера с нужной группой.

Надіслати
Поділитися на інших сайтах

  • 6 months later...

С этим все понятно, но как сделать , чтобы при в ходе пользователь не видел информацию "Краткий обзор", "Статистика", "Последние 10 заказов", отображаемую в панели в самом начале? 

Надіслати
Поділитися на інших сайтах


if ($this->user->hasPermission('modify', 'sale/customer')) {		
		$this->load->model('sale/customer');
		
		$this->data['total_customer'] = $this->model_sale_customer->getTotalCustomers();
		$this->data['total_customer_approval'] = $this->model_sale_customer->getTotalCustomersAwaitingApproval();
} else {
		$this->data['total_customer'] = 'Нет прав';
		$this->data['total_customer_approval'] = 'Нет прав';

Приблизительно так

Надіслати
Поділитися на інших сайтах

if ($this->user->hasPermission('modify', 'sale/customer')) {		
		$this->load->model('sale/customer');
		
		$this->data['total_customer'] = $this->model_sale_customer->getTotalCustomers();
		$this->data['total_customer_approval'] = $this->model_sale_customer->getTotalCustomersAwaitingApproval();
} else {
		$this->data['total_customer'] = 'Нет прав';
		$this->data['total_customer_approval'] = 'Нет прав';

Приблизительно так

 

 

Спасибо за ответ. Не прогер, не все знаю: 

 

У меня версия OpenCart 1.5.3.1

Я так понимаю идет речь про файл home.php, расположенный в директории admin / controller / common /  , приведенный кусок кода необходимо куда-то вставить. Вопрос куда именно?  :unsure:

Надіслати
Поділитися на інших сайтах


А что вам не понятно в моем приведенном коде?

if ($this->user->hasPermission('modify', 'sale/customer')) {  

Проверяем доступность следующей модели:

  $this->load->model('sale/customer');

И так несколько раз на каждую из применяемых моделей

 

 

 

Все верно, вы правильно указали путь к файлу контроллера

 

Приведенный код вставить..

Найти подобные строки и замените приведенным кодом (UTF-8 без BOM)

Надіслати
Поділитися на інших сайтах

А что вам не понятно в моем приведенном коде?

if ($this->user->hasPermission('modify', 'sale/customer')) {  

Проверяем доступность следующей модели:

  $this->load->model('sale/customer');

И так несколько раз на каждую из применяемых моделей

 

 

 

Все верно, вы правильно указали путь к файлу контроллера

 

Приведенный код вставить..

Найти подобные строки и замените приведенным кодом (UTF-8 без BOM)

 

 

В том-то и дело, что подобных строк нет , версия OpenCard 1.5.3.1

Надіслати
Поділитися на інших сайтах


Ок... а такие?

		$this->load->model('sale/order');

		$this->data['total_sale'] = $this->currency->format($this->model_sale_order->getTotalSales(), $this->config->get('config_currency'));
		$this->data['total_sale_year'] = $this->currency->format($this->model_sale_order->getTotalSalesByYear(date('Y')), $this->config->get('config_currency'));
		$this->data['total_order'] = $this->model_sale_order->getTotalOrders();

И  чем  будет отличаться мои рекомендации?

Проверяем доступность следующей модели:

if ($this->user->hasPermission('modify', 'sale/order')) {  
$this->load->model('sale/order');
Надіслати
Поділитися на інших сайтах

 

Ок... а такие?

		$this->load->model('sale/order');

		$this->data['total_sale'] = $this->currency->format($this->model_sale_order->getTotalSales(), $this->config->get('config_currency'));
		$this->data['total_sale_year'] = $this->currency->format($this->model_sale_order->getTotalSalesByYear(date('Y')), $this->config->get('config_currency'));
		$this->data['total_order'] = $this->model_sale_order->getTotalOrders();

И  чем  будет отличаться мои рекомендации?

Проверяем доступность следующей модели:

if ($this->user->hasPermission('modify', 'sale/order')) {  
$this->load->model('sale/order');

 

Изменила код на:

 

if ($this->user->hasPermission('modify', 'sale/order')) { 
$this->load->model('sale/order');
 
$this->data['total_sale'] = $this->currency->format($this->model_sale_order->getTotalSales(), $this->config->get('config_currency'));
$this->data['total_sale_year'] = $this->currency->format($this->model_sale_order->getTotalSalesByYear(date('Y')), $this->config->get('config_currency'));
$this->data['total_order'] = $this->model_sale_order->getTotalOrders();
 
} else {
$this->data['total_sale'] = 'Нет прав';
$this->data['total_sale_year'] = 'Нет прав';
$this->data['total_order'] = 'Нет прав';
}
 
Сохранила файл home.php в кодировке UTF-8 без BOM
 
 
По итогу выдает ошибку при входе пользователя с ограниченными возможностями 
 
Fatal error: Call to a member function getOrders() on a non-object in /home/.../public_html/admin/controller/common/home.php on line 177
Надіслати
Поділитися на інших сайтах


Полагаю, что суть ошибки Работает только от обьекта... а обьекта нет. Получается метод ZZZ(model_sale_order) ничего не возвращает и от этого ничего вызываем второй метод XXX()

 

Как верно устранить ошибку?

Надіслати
Поділитися на інших сайтах


Все верно

 

getOrders()  - также находится в модели

 

$this->load->model('sale/order');

 

А ее не загрузили

 

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

Надіслати
Поділитися на інших сайтах

Все верно

 

getOrders()  - также находится в модели

 

$this->load->model('sale/order');

 

А ее не загрузили

 

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

 

К примеру, у меня есть строка в коде

 

$results = $this->model_sale_order->getOrders($data);

 

Я так понимаю, здесь нужно внести поправки и написать код следующим образом для устранения появляющейся ошибки

 

if ($this->user->hasPermission('modify', 'sale/order')) { 
$results = $this->model_sale_order->getOrders($data);
} else {
$results = 'Нет прав';
}
 
 
Это правильно?
Надіслати
Поділитися на інших сайтах


да

 

Внесла изменения. Стало возможно заходить в админ панель пользователю с ограниченными возможностями. Но в админ панели сверху выскакивает ошибка:

 

Warning: Invalid argument supplied for foreach() in /home/.../public_html/admin/controller/common/home.php on line 183

 

Не знаю правильно ли , но я попробывала заменить 

 

     foreach ($results as $result) {
$action = array();
 
$action[] = array(
'text' => $this->language->get('text_view'),
'href' => $this->url->link('sale/order/info', 'token=' . $this->session->data['token'] . '&order_id=' . $result['order_id'], 'SSL')
);
 
на
 
if(isset($results) && is_array($results)) foreach ($results as $result) {
$action = array();
 
$action[] = array(
'text' => $this->language->get('text_view'),
'href' => $this->url->link('sale/order/info', 'token=' . $this->session->data['token'] . '&order_id=' . $result['order_id'], 'SSL')
);
 
Ошибки теперь нет. Надеюсь, не накосячила с исправлением кода  :-) 

https://opencartforum.com/topic/3917-php-warning-invalid-argument-supplied-for-foreach/

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.