3 * Bacula(R) - The Network Backup Solution
4 * Baculum - Bacula web interface
6 * Copyright (C) 2013-2016 Kern Sibbald
8 * The main author of Baculum is Marcin Haba.
9 * The original author of Bacula is Kern Sibbald, with contributions
10 * from many others, a complete list can be found in the file AUTHORS.
12 * You may use this file and others of this release according to the
13 * license defined in the LICENSE file, which includes the Affero General
14 * Public License, v3.0 ("AGPLv3") and some additional permissions and
15 * terms pursuant to its AGPLv3 Section 7.
17 * This notice must be preserved when any source code is
18 * conveyed and/or propagated.
20 * Bacula(R) is a registered trademark of Kern Sibbald.
23 Prado::using('Application.Common.Class.Interfaces');
24 Prado::using('Application.Common.Class.SessionRecord');
26 class HostRecord extends SessionRecord implements SessionItem {
37 public $client_secret;
41 public function __construct($host = null, $params = array()) {
42 parent::__construct();
43 if (!is_null($host) && is_array($params)) {
44 $this->setHost($host, $params);
48 public static function getRecordId() {
52 public static function getPrimaryKey() {
56 public static function getSessionFile() {
57 return Prado::getPathOfNamespace('Application.Web.Config.session', '.dump');
61 * Set host in session.
64 * @param string $host host name in config
65 * @param array $params host parameters in associative array
68 public function setHost($host, array $params) {
70 $this->protocol = array_key_exists('protocol', $params) ? $params['protocol'] : 'https';
71 $this->address = array_key_exists('address', $params) ? $params['address'] : '';
72 $this->port = array_key_exists('port', $params) ? $params['port'] : null;
73 $this->url_prefix = array_key_exists('url_prefix', $params) ? $params['url_prefix'] : '';
74 if (array_key_exists('auth_type', $params)) {
75 $this->auth_type = $params['auth_type'];
76 if ($params['auth_type'] === 'basic') {
77 $this->login = array_key_exists('login', $params) ? $params['login'] : '';
78 $this->password = array_key_exists('password', $params) ? $params['password'] : '';
79 } elseif ($params['auth_type'] === 'oauth2') {
80 $this->client_id = array_key_exists('client_id', $params) ? $params['client_id'] : '';
81 $this->client_secret = array_key_exists('client_secret', $params) ? $params['client_secret'] : '';
82 $this->redirect_uri = array_key_exists('redirect_uri', $params) ? $params['redirect_uri'] : '';
83 $this->scope = array_key_exists('scope', $params) ? $params['scope'] : '';