Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Редактирование файлов

Файлы конфигурации, а также .xhtml-файлы можно редактировать. Однако, чтобы при очередном обновлении отредактированные файлы не перезаписались файлами из сборки, необходимо создать рядом файл с именем исходного файла плюс суффикс(расширение) .orig. Например, перед редактированием файла просто создайте его копию добавив окончание .orig. В этом случае при обновлении файл из сборки запишется не в исходный файл, а в файл .orig, а исходный, отредактированный вами останется без изменений.

Вход в личный кабинет с другой страницы

Можно создать форму входа в личный кабинет биллинга, например, на странице вашего сайта. Для этого URL (action) формы должен указывать на index.xhtml, а также параметры для аутентификации:

  • authMode - режим авторизации из mybgbilling-conf.groovy, число (порядковый номер начиная c нуля из списка authentication.modes) или строка (значение поля authenticationMode.mode, если эти значения уникальны). Если поле не указано, то используется первый режим аутентификации из списка;
  • username - номер договора для authenticationMode.mode=contract или логин Inet для authenticationMode.mode=login (authenticationMode.module=inet);
  • password - пароль для username.

Например, для такой конфигурации:

    modes = [
    	authenticationMode {
 			mode = 'contract'
    	},
    	
    	authenticationMode {
     		mode = 'login'
     		module = 'inet'
     		moduleId = 13
     	},
    	
    	authenticationMode {
     		mode = 'ip'
     		module = 'inet'
     		moduleId = 13
     		role = 'unauthCustomer'
     		filter = { contract -> contractInGroup( contract, [4, 8, 15, 16, 23, 42] ) }
     	}
	]

можно использовать такую форму для аутентификации по номеру договора:

<form action="lk.provider.ru/index.xhtml">
  <input type="text" name="username">
  <input type="password" name="password">
  <input type="submit">
</form>

Для аутентификации по логину Inet:

<form action="lk.provider.ru/index.xhtml">
  <input type="hidden" name="authMode" value="1">
  <input type="text" name="username">
  <input type="password" name="password">
  <input type="submit">
</form>

Для аутентификации по IP-адресу:

<form action="lk.provider.ru/index.xhtml">
  <input type="hidden" name="authMode" value="ip">
  <input type="submit">
</form>

Или, для последнего случая, просто ссылкой:

Аутентификация по IP-адресу без страницы логина
<a href="lk.provider.ru/index.xhtml?authMode=ip">Личный кабинет</a>

Ссылка на страницу

В ссылке на личный кабинет можно указывать конкретную страницу (ядра и helpdesk), для этого в URL нужно указать параметр page со значением страницы, как она прописана в mybgbilling-menu.groovy. Например:

<a href="lk.provider.ru/index.xhtml?page=plugins/helpdesk/helpdesk">Поддержка</a>

Данный параметр можно совместить с аутентификацией с другой страницы (например, аутентификацией по IP-адресу):

<a href="lk.provider.ru/index.xhtml?authMode=ip&page=kernel/payment">Оплатить</a>

Страница будет открыта, только если к ней разрешен доступ в mybgbilling-menu.groovy.

Ограничение доступа

Для некоторых режимов аутетификации можно ограничить доступ к различным действиям и пунктам меню. Это может быть удобно, например, для режима аутентификации по IP-адресу. Для этого нужно указать в режиме аутентификации role = 'unauthCustomer':

    modes = [
    	...
    	
    	authenticationMode {
     		mode = 'ip'
     		module = 'inet'
     		moduleId = 13
     		role = 'unauthCustomer'
     		//filter = { contract -> contractInGroup( contract, [4, 8, 15, 16, 23, 42] ) }
     	}
	]

В этому случае, если абонент аутентифицируется через данный режим, в mybgbilling-menu.groovy и mybgbilling-conf.groovy вызов isCustomer() будет возвращать false. Соответственно, например, данный пункт меню в этом случае будет недоступен абоненту:

		// Тарифные опции
		menu( page: "kernel/tariffOptions", icon: "fa-cogs", title: "menu.tariffOptions", show: isCustomer() ),

Т.к. у него параметр show зависит от isCustomer(). А изменение лимита запрещено (даже если пункт меню "Лимит" доступен), т.к. в mybgbilling-conf.groovy указана зависимость:

		// limit.xhtml
		limit {
			// возможность изменения лимита договора
			limitChange = { contract -> (contract.balanceMode == (byte)1) && isCustomer() }
		}
  • Нет меток