Для одновременной работы нескольких пользователей с одной и той же информацией базу данных надо расположить на Web хостинге и связать с этой базой приложения на каждом устройстве.
Мы будем использовать в качестве базы данных MySQL как самую популярную систему.
Поскольку приложение не может непосредственно посылать запросы к базе данных MySQL, то нам надо создать промежуточный слой между приложением и базой данных.
Это PHP-сервис – файл apiserver.php. Он создаётся с помощью приложения и затем загружается вручную на Web – сервер.
Этот процесс будет описан ниже.
Вот так схематично выглядит работа нескольких пользователей с единой базой данных.
|
|
Internet
|
|
Web хостинг
apiserver.php
|
|
База данных MySQL
|
|
Для организации многопользовательской работы нам надо выполнить следующие действия:
- 1. Создать базу данных на Web хостинге.
- 2. Сгенерировать файл apiserver.php и закачать его на сервер.
- 3. Подключить приложения к серверу.
- 4. Перенести данные с локального сервера на Web хостинг (при необходимости).
- 5. Добавить пользователей и назначить им права доступа.
1. Создание базы данных на Web хостинге
На этом этапе нам нужно получить:
- Url-адрес сайта (доменное имя). Например, http://mysite.com
- Имя хоста (hostname) MySQL. Например, localhost
- Имя базы данных (database name) MySQL. Например, db_mybase
- Логин пользователя MySQL. Например, db_user
- Пароль пользователя MySQL. Например, db_pswd
Если у вас уже есть сайт, например, http://mysite.com, и у вас есть возможность создать на этом сайте дополнительную базу данных, то это будет самый простой и удобный вариант. В этом случае рекомендуем создать субдомен, например, http://nano.mysite.com.
Иначе, вам следует выбрать провайдера web услуг и зарегистрировать новое доменное имя сервера, на котором будет хранится база данных.
Как правило, у всех провайдеров процесс регистрации домена и создания баз данных автоматизирован и хорошо документирован.
Внимание! База данных должна поддерживать кодировку UTF-8.
Переходим к следующему шагу.
2. Создание файла apiserver.php и размещение его на сервере
Перейдите на страницу "База данных".
Для этого в Mac версии выберите меню "База данных" в разделе "Настройки" или кликните кнопку быстрого доступа
.
В мобильной версии нажмите на кнопку
в панели инструментов на домашней странице ("Основная информация").
2.1. На вкладке "Общие" введите URL сервера. По умолчанию в этом поле будет значение http://yourserver.com/apiserver.php.
Замените yourserver.com на имя вашего домена. Если ваш домен http://mysite.com, то у вас должно получиться http://mysite.com/apiserver.php.
2.2. Ключ доступа обеспечивает дополнительную безопасность и используется приложением при каждом обращении к серверу.
Это может быть любое слово.
2.3. На вкладке "Файлы" введите параметры базы данных MySQL, полученные на предыдущем этапе.
2.4. Нажмите кнопку "Создать файл apiserver.php".
2.5. В Mac версии сохраните файл в любом удобном месте. В мобильной версии файл сохранится в папке "Документы" приложения.
Скачайте его на компьютер с помощью iTunes.
2.6. Загрузите полученный файл в корневую (домашнюю) папку вашего сайта с помощью "Файл-менеджера" в панели управления вашего аккаунта или через ftp-доступ к сайту.
Чтобы убедиться в том что вы всё правильно сделали, наберите в браузере http://mysite.com/apiserver.php (вместо mysite.com подставьте реальное имя вашего домена).
Если вы всё сделали правильно, то должны получить такое сообщение {"success":0,"errormsg":"Action not found.","data":""}.
3. Подключение приложения к серверу
Вернитесь на вкладку "Общие" и в поле "Расположение базы данных" установите "Удалённое".
Нажмите кнопку "Изменить".
Приложение попытается подключиться к серверу и, в случае удачи, создаст на нём базу данных с тестовыми данными.
Вам будет предложено ввести логин и пароль пользователя.
Введите логин admin и пароль admin. Вы сможете изменить эти данные.
Совет. Вы в любой момент можете вернуться к работе с локальной базой данных.
Для этого в форме авторизации кликните на ссылку "Или нажмите сюда чтобы работать с локальной базой данных" под кнопкой "Войти".
Или же в меню "База данных" установите поле "Расположение базы данных" в "Локальное".
4. Перенос локальных данных на web хостинг.
В режиме работы с локальной базой данных зайдите в меню "Резервное копирование" и нажмите кнопку "MySQL dump".
В Mac версии файл mysql.dump вы найдете с помощью Finder. Из мобильной версии его надо скачать на компьютер с помощью iTunes.
Данные из этого файла надо импортировать в базу данных MySQL с промощью "phpMySqlAmon" в панели управления вашего аккаунта.
5. Добавление пользователей. Управление доступом.
Права на доступ к функциям (операциям) приложения
Для разграничения прав пользователей в приложении реализовано Ролевое управление доступом (Role-Based Access Control - RBAC).
Это означает, что права назначаются не пользователям, а ролям. Таким образом, роль выступает как набор прав. Пользователь получает те или иные права после того как он будет включен в одну или несколько ролей.
Количество ролей и пользователей в системе не ограничено. Набор прав определяется функциональными возможностями системы.
Таким образом, основными объектами системы управления доступом являются Пользователи, Роли и Права.
Пользователи входят в роли через матрицу Роли - Пользователи.
Ролям назначаются права через матрицу Роли - Права. В этой матрице также указывается уровень доступа для каждого права - Чтение, Изменение, Добавление и Удаление.
На диаграмме показано как связаны эти объекты
Пользователи
|
|
Роли
|
|
Права
|
|
|
|
|
|
|
|
|
|
|
Роли - Пользователи
|
|
Роли - Права
|
|
Права на доступ к объектам приложения
Приложение позволяет вам также ограничить доступ к объектам системы таким, как Расчётные счета, Прайслисты, Разделы справочника и пр.
Например, на вашем предприятии работают несколько кассиров. Права у них могут быть одинаковыми (вносить и выдавать деньги из кассы).
Т.е. они все будут входить в одну и ту же Роль приложения. Но каждый кассир должен видеть только свою кассу.
Такая возможность реализована в приложении с помощью ещё одной матрицы Пользователи - объекты.
Как в приложении добавить пользователя и назначить ему права
Задача: Добавить пользователя системы дать ему возможность работать приходами и расходами денег.
Дать доступ только к одному расчётному счету.
Это только пример, описывающий общие принципы системы доступа.
В данном конкретном приложении может не быть денежных операций.
Последовательность действий:
- Переходим в меню "Управление доступом" - "Пользователи".
- Добавляем нового пользователя (нажимаем кнопку "+"), заполняем обязательные поля. Обратите внимание на признак "Активирован". Только активированные пользователи могут входить в систему.
- В меню "Роли" добавляем роль "Кассиры".
- Теперь для этой роли назначаем права.
- В списке ролей кликаем на ссылку "Показать права". Откроется матрица "Роли - Права".
- Нажимаем кнопку "+", отмечаем в первой колонке нужные права, например, Деньги - Приходы и расходы, Деньги - Счета. И нажимаем кнопку готово чтобы выбранные права добавились в нашу роль. Здесь нам предложат указать степень доступа (чтение, изменение, добавление, удаление). Подтверждаем нажатием на кнопку "Добавить".
- Осталось добавить пользователя в роль.
- В списке ролей кликаем на ссылку "Показать пользователей". Откроется матрица "Роли - Пользователи".
- Нажимаем кнопку "+", отмечаем в первой колонке пользователей и нажимаем кнопку готово.
- Новый пользователь уже может зайти в систему и работать с денежными операциями. Но сейчас ему доступны все расчётные счета.
- Ограничиваем список доступных счетов. Переходим в меню "Пользователи".
- В списке пользователей кликаем на ссылку "Показать объекты". Откроется матрица "Пользователи - Объекты".
- Выбираем тип объекта "Счета"
- Нажимаем кнопку "+" и добавляем нужный счёт.
Внимание! Все изменения прав начинают действовать при следующем входе в систему (логированию) пользователя.
Совет. Все описанные выше действия можно производить из одного меню "Роли".
Когда вы выбираете пользователей для добавления в роль, то в списке выбора нажмите кнопку "+" и добавьте нового пользователя.