Определить лицензию из стороннего приложения

Добрый день!
Мы сейчас разрабатываем стороннее приложение для Террасофт (мобильный клиент для 3.X) и остался ряд технических вопросов, связанных с лицензированием (оно будет происходить через менеджер лицензий Террасофта):
1. Как из внешней системы получить сведения о наличии лицензии у конкретного пользователя (параметры: логин, название модуля)?
2. Как из внешней системы проверить пароль пользователя (параметры: логин, пароль)? И для windows и для sql пользователей?
Заранее спасибо за ответ.

Нравится

4 комментария

Алена, приветствую!

Дело в том, что логика лицензирования находится в ядре и это единственный функционал, который закрыт для клиентов.

Что касается вопроса в общем, то могу описать принцип работы любого модуля, который создается в рамках дополнительного функционала.

В любом случае, будет это мобильное приложение или локальное на ПК приложение, все они обращаются к БД, в которой есть перечень модулей. Некоторые из них отвечают за клиентскую часть, некоторые будут отвечать за мобильную часть.

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

Поэтому, для реализации вашей задачи, главное настроить корректное обращение к БД.

С уважением,
Белецкий Арсений
Группа компаний Terrasoft

Арсений, спасибо, я, наверное, не совсем корректно сформулировала вопрос :) Нас интересует именно непосредственно уже сам запрос к БД.
Как-то так?:
select * from tbl_License l
join tbl_AdminUnit au on (l.UserID=au.ID)
join tbl_Contact c on (c.ID=au.UserContactID)
where Module='COMMON' and c.Name='Supervisor'

Здравствуйте, Алена.
Да, все верно:

SELECT 
	CASE 
		WHEN EXISTS(
			select * from tbl_License l
			join tbl_AdminUnit au on (l.UserID=au.ID)
			join tbl_Contact c on (c.ID=au.UserContactID)
			where Module='COMMON' and c.Name='Supervisor')
		THEN 1
		ELSE 0
END

Спасибо!

Показать все комментарии