From defcf9a3eb3c2655fef28380b34b1d2bded8a947 Mon Sep 17 00:00:00 2001 From: Marcin Haba Date: Sun, 6 Aug 2017 09:19:32 +0200 Subject: [PATCH] baculum: Add ability to assign host to specific user - Define api host for user - Fix users working in BWeb - Drop using user manager - Separate users code to new portlet --- gui/baculum/protected/API/Pages/API/Jobs.php | 21 +-- .../API/Pages/Panel/APIInstallWizard.php | 2 +- gui/baculum/protected/API/Pages/config.xml | 3 - .../protected/Common/Class/BaculumUser.php | 45 ------ .../Common/Class/BaculumUsersManager.php | 106 -------------- .../protected/Web/Class/BaculumAPIClient.php | 24 +++- .../protected/Web/Class/BaculumWebPage.php | 2 + gui/baculum/protected/Web/JavaScript/misc.js | 20 ++- .../protected/Web/JavaScript/slide-window.js | 2 +- gui/baculum/protected/Web/Lang/en/messages.mo | Bin 33305 -> 33415 bytes gui/baculum/protected/Web/Lang/en/messages.po | 9 ++ gui/baculum/protected/Web/Lang/ja/messages.mo | Bin 30187 -> 30345 bytes gui/baculum/protected/Web/Lang/ja/messages.po | 9 ++ gui/baculum/protected/Web/Lang/pl/messages.mo | Bin 35526 -> 35637 bytes gui/baculum/protected/Web/Lang/pl/messages.po | 9 ++ gui/baculum/protected/Web/Lang/pt/messages.mo | Bin 35087 -> 35197 bytes gui/baculum/protected/Web/Lang/pt/messages.po | 9 ++ gui/baculum/protected/Web/Pages/Monitor.php | 3 +- .../protected/Web/Pages/RestoreWizard.php | 5 - .../protected/Web/Pages/WebConfigWizard.php | 12 +- gui/baculum/protected/Web/Pages/WebHome.page | 86 ++--------- gui/baculum/protected/Web/Pages/WebHome.php | 134 ++++++------------ gui/baculum/protected/Web/Pages/config.xml | 3 - .../protected/Web/Portlets/BaculaHosts.php | 6 + gui/baculum/protected/Web/Portlets/Users.php | 114 +++++++++++++++ gui/baculum/protected/Web/Portlets/Users.tpl | 85 +++++++++++ gui/baculum/themes/Baculum-v1/style.css | 12 +- 27 files changed, 364 insertions(+), 357 deletions(-) delete mode 100644 gui/baculum/protected/Common/Class/BaculumUser.php delete mode 100644 gui/baculum/protected/Common/Class/BaculumUsersManager.php create mode 100644 gui/baculum/protected/Web/Portlets/Users.php create mode 100644 gui/baculum/protected/Web/Portlets/Users.tpl diff --git a/gui/baculum/protected/API/Pages/API/Jobs.php b/gui/baculum/protected/API/Pages/API/Jobs.php index 942e70e53d..e7a7bb6b82 100644 --- a/gui/baculum/protected/API/Pages/API/Jobs.php +++ b/gui/baculum/protected/API/Pages/API/Jobs.php @@ -24,23 +24,16 @@ class Jobs extends BaculumAPIServer { public function get() { $limit = intval($this->Request['limit']); $allowed = array(); - $error = false; - if (!is_null($this->user)) { - $allowedJobs = $this->getModule('bconsole')->bconsoleCommand($this->director, array('.jobs'), $this->user); - if ($allowedJobs->exitcode === 0) { - array_shift($allowedJobs->output); - $allowed = $allowedJobs->output; - } else { - $error = true; - $this->output = $allowedJobs->output; - $this->error = $allowedJobs->exitcode; - } - } - - if ($error === false) { + $allowedJobs = $this->getModule('bconsole')->bconsoleCommand($this->director, array('.jobs'), $this->user); + if ($allowedJobs->exitcode === 0) { + array_shift($allowedJobs->output); + $allowed = $allowedJobs->output; $jobs = $this->getModule('job')->getJobs($limit, $allowed); $this->output = $jobs; $this->error = JobError::ERROR_NO_ERRORS; + } else { + $this->output = $allowedJobs->output; + $this->error = $allowedJobs->exitcode; } } } diff --git a/gui/baculum/protected/API/Pages/Panel/APIInstallWizard.php b/gui/baculum/protected/API/Pages/Panel/APIInstallWizard.php index c676fb68f4..5429682e6d 100644 --- a/gui/baculum/protected/API/Pages/Panel/APIInstallWizard.php +++ b/gui/baculum/protected/API/Pages/Panel/APIInstallWizard.php @@ -59,7 +59,7 @@ class APIInstallWizard extends BaculumAPIPage { $config = $this->getModule('api_config'); $this->config = $config->getConfig(); $this->first_run = (count($this->config) === 0); - if ($this->first_run === false && $this->User->getIsAdmin() === false) { + if ($this->first_run === false) { die('Access denied.'); } } diff --git a/gui/baculum/protected/API/Pages/config.xml b/gui/baculum/protected/API/Pages/config.xml index 3013ffcca8..60e712cc00 100644 --- a/gui/baculum/protected/API/Pages/config.xml +++ b/gui/baculum/protected/API/Pages/config.xml @@ -4,9 +4,6 @@ - - - diff --git a/gui/baculum/protected/Common/Class/BaculumUser.php b/gui/baculum/protected/Common/Class/BaculumUser.php deleted file mode 100644 index 320cbaf9e2..0000000000 --- a/gui/baculum/protected/Common/Class/BaculumUser.php +++ /dev/null @@ -1,45 +0,0 @@ -_id; - } - - public function setID($id) { - $this->_id = $id; - } - - public function getIsAdmin() { - return $this->isInRole('admin'); - } - - public function getIsUser() { - return $this->isInRole('user'); - } -} -?> diff --git a/gui/baculum/protected/Common/Class/BaculumUsersManager.php b/gui/baculum/protected/Common/Class/BaculumUsersManager.php deleted file mode 100644 index 7e5f655a99..0000000000 --- a/gui/baculum/protected/Common/Class/BaculumUsersManager.php +++ /dev/null @@ -1,106 +0,0 @@ - 'web_auth', - 'api_users' => 'api_auth' - ); - - public function getGuestName() { - return 'guest'; - } - - public function validateUser($username, $password) { - /* - * In Basic auth web server cares about access. - * For OAuth2 there will be separate module. - */ - $valid = true; - // @TOREMOVE - /*if(!empty($username) && !empty($password)) { - $users = $this->configMod->getAllUsers(); - $valid = (array_key_exists($username, $users) && $password === $users[$username]); - }*/ - return $valid; - } - - public function getUser($username = null) { - $user = new BaculumUser($this); - $user->setIsGuest(false); - $id = sha1(time()); - $user->setID($id); - $user->setName($username); - // @TOFIX: Don't use web config values here - /*if(is_null($this->config) || $this->config['baculum']['login'] === $username) { - $user->setRoles('admin'); - } else { - $user->setRoles('user'); - }*/ - // @TODO: Set roles in Web part only for webGUI users. API will have own new auth method. - // Temporary set user to admin. - $user->setRoles('admin'); - return $user; - } - - public function getUserFromCookie($cookie) { - $data = $cookie->Value; - if (!empty($data)) { - $data = $this->Application->SecurityManager->validateData($data); - if ($data != false) { - $data = unserialize($data); - if (is_array($data) && count($data) === 3) { - list($username, $address, $token) = $data; - return $this->getUser($username); - } - } - } - } - - public function saveUserToCookie($cookie) { - $address = $this->Application->Request->UserHostAddress; - $username = $this->User->getName(); - $token = $this->User->getID(); - $data = array($username, $address, $token); - $data = serialize($data); - $data = $this->Application->SecurityManager->hashData($data); - $cookie->setValue($data); - } - - public function loginUser($user = null, $pwd = null) { - if (is_null($user) && is_null($pwd) && isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) { - $user = $_SERVER['PHP_AUTH_USER']; - $pwd = $_SERVER['PHP_AUTH_PW']; - } - $auth = $this->auth_managers[$this->getID()]; - $logged = $this->Application->getModule($auth)->login($user, $pwd, 86400); - return $logged; - } -} -?> diff --git a/gui/baculum/protected/Web/Class/BaculumAPIClient.php b/gui/baculum/protected/Web/Class/BaculumAPIClient.php index d918aa1af1..6e7ce35bb3 100644 --- a/gui/baculum/protected/Web/Class/BaculumAPIClient.php +++ b/gui/baculum/protected/Web/Class/BaculumAPIClient.php @@ -259,7 +259,11 @@ class BaculumAPIClient extends WebModule { $cached = null; $ret = null; if (is_null($host)) { - $host = HostConfig::MAIN_CATALOG_HOST; + if (isset($_SESSION['api_host'])) { + $host = $_SESSION['api_host']; + } else { + $host = HostConfig::MAIN_CATALOG_HOST; + } } if ($use_cache === true) { $cached = $this->getSessionCache($host, $params); @@ -296,7 +300,11 @@ class BaculumAPIClient extends WebModule { */ public function set(array $params, array $options, $host = null, $show_error = true) { if (is_null($host)) { - $host = HostConfig::MAIN_CATALOG_HOST; + if (isset($_SESSION['api_host'])) { + $host = $_SESSION['api_host']; + } else { + $host = HostConfig::MAIN_CATALOG_HOST; + } } $host_cfg = $this->getHostParams($host); $uri = $this->getURIResource($host, $params); @@ -329,7 +337,11 @@ class BaculumAPIClient extends WebModule { */ public function create(array $params, array $options, $host = null, $show_error = true) { if (is_null($host)) { - $host = HostConfig::MAIN_CATALOG_HOST; + if (isset($_SESSION['api_host'])) { + $host = $_SESSION['api_host']; + } else { + $host = HostConfig::MAIN_CATALOG_HOST; + } } $host_cfg = $this->getHostParams($host); $uri = $this->getURIResource($host, $params); @@ -357,7 +369,11 @@ class BaculumAPIClient extends WebModule { */ public function remove(array $params, $host = null, $show_error = true) { if (is_null($host)) { - $host = HostConfig::MAIN_CATALOG_HOST; + if (isset($_SESSION['api_host'])) { + $host = $_SESSION['api_host']; + } else { + $host = HostConfig::MAIN_CATALOG_HOST; + } } $host_cfg = $this->getHostParams($host); $uri = $this->getURIResource($host, $params); diff --git a/gui/baculum/protected/Web/Class/BaculumWebPage.php b/gui/baculum/protected/Web/Class/BaculumWebPage.php index e98a7bf34f..ae2fdba191 100644 --- a/gui/baculum/protected/Web/Class/BaculumWebPage.php +++ b/gui/baculum/protected/Web/Class/BaculumWebPage.php @@ -20,6 +20,8 @@ * Bacula(R) is a registered trademark of Kern Sibbald. */ +session_start(); + Prado::using('Application.Common.Class.BaculumPage'); Prado::using('Application.Web.Class.WebConfig'); diff --git a/gui/baculum/protected/Web/JavaScript/misc.js b/gui/baculum/protected/Web/JavaScript/misc.js index b9b0db81f8..1327080579 100644 --- a/gui/baculum/protected/Web/JavaScript/misc.js +++ b/gui/baculum/protected/Web/JavaScript/misc.js @@ -233,8 +233,10 @@ var Dashboard = { document.getElementById(this.ids.jobtotals.total_files).textContent = this.stats.jobtotals.files || 0; }, update_database: function() { - document.getElementById(this.ids.database.type).textContent = this.dbtype[this.stats.dbsize.dbtype]; - document.getElementById(this.ids.database.size).textContent = Units.get_decimal_size(this.stats.dbsize.dbsize); + if (this.stats.dbsize.dbsize) { + document.getElementById(this.ids.database.type).textContent = this.dbtype[this.stats.dbsize.dbtype]; + document.getElementById(this.ids.database.size).textContent = Units.get_decimal_size(this.stats.dbsize.dbsize); + } }, update_pools: function() { var pools = this.stats.pools_occupancy; @@ -277,11 +279,15 @@ var Users = { change_pwd: { rel_chpwd: 'chpwd', rel_chpwd_btn: 'chpwd_btn' + }, + set_host: { + rel_user_host: 'user_host_img' } }, validators: { user_pattern: null }, + current_action: null, init: function() { this.setEvents(); }, @@ -365,6 +371,16 @@ var Users = { this.action_callback('chpwd', user, pwd); return true; }, + set_host: function(user, select) { + select.nextElementSibling.style.visibility = 'visible'; + this.action_callback('set_host', user, select.value); + }, + hide_loader: function() { + if (this.current_action === 'set_host') { + $('img[rel=\'' + this.ids.set_host.rel_user_host + '\']').css({visibility: 'hidden'}); + } + + }, cancelAddUser: function() { $('#' + this.ids.create_user.add_user).hide(); }, diff --git a/gui/baculum/protected/Web/JavaScript/slide-window.js b/gui/baculum/protected/Web/JavaScript/slide-window.js index c8dd15f208..ce24cf7fd0 100644 --- a/gui/baculum/protected/Web/JavaScript/slide-window.js +++ b/gui/baculum/protected/Web/JavaScript/slide-window.js @@ -292,7 +292,7 @@ var SlideWindowClass = jQuery.klass({ return; } set_callback_parameter(tr); - }.bind(tr)); + }); }.bind(this)); Formatters.set_formatters(); this.revertSortingFromCookie(); diff --git a/gui/baculum/protected/Web/Lang/en/messages.mo b/gui/baculum/protected/Web/Lang/en/messages.mo index 07248f9c71cf56397f21ccd295976f1a675fb791..639fe1df70a391ffc0fcebb26d194b4ead55be85 100644 GIT binary patch literal 33415 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 dCzRp$;joZMkCE!jcUx!92}8Nn?-Z4fAF!%X9*S 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 C9zrbu diff --git a/gui/baculum/protected/Web/Lang/en/messages.po b/gui/baculum/protected/Web/Lang/en/messages.po index 3e88541eb0..6eaba610f5 100644 --- a/gui/baculum/protected/Web/Lang/en/messages.po +++ b/gui/baculum/protected/Web/Lang/en/messages.po @@ -1408,3 +1408,12 @@ msgstr "OAuth2 Scope:" msgid "Restore job:" msgstr "Restore job:" + +msgid "API host" +msgstr "API host" + +msgid "API host:" +msgstr "API host:" + +msgid "Select host" +msgstr "Select host" diff --git a/gui/baculum/protected/Web/Lang/ja/messages.mo b/gui/baculum/protected/Web/Lang/ja/messages.mo index d1bf720ba3f3ff0bdf0f8c6e3a28d990c5c55187..db593bd790b171103943369785f2d8b4f27ef890 100644 GIT binary patch delta 8376 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 delta 8269 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 Guzvw*t8*X# diff --git a/gui/baculum/protected/Web/Lang/ja/messages.po b/gui/baculum/protected/Web/Lang/ja/messages.po index ed84f3abd9..b10f5213b5 100644 --- a/gui/baculum/protected/Web/Lang/ja/messages.po +++ b/gui/baculum/protected/Web/Lang/ja/messages.po @@ -1153,3 +1153,12 @@ msgstr "No jobs for the client." msgid "Restore job:" msgstr "Restore job:" + +msgid "API host" +msgstr "API host" + +msgid "API host:" +msgstr "API host:" + +msgid "Select host" +msgstr "Select host" diff --git a/gui/baculum/protected/Web/Lang/pl/messages.mo b/gui/baculum/protected/Web/Lang/pl/messages.mo index 2224193e683a93e047d328c848e3477656ebb2d3..1d429a46931745dcb42c8b726d620a0355274439 100644 GIT binary patch delta 10220 zcmYk>2Y6P+)`sDoKnSGLLJc86LV(b_^j<>m1Oe%UUV?}2M+d1YQX~{T6a_@kC>;$T zpn}pt1t}^VKv0x+IH>&3`_0OKxi41knb~D#*38}!Ji09KljVWFE4i~S^EfU9cwRJ~ zi157efu1*|h*~|bdxGcX#AFP|p%{V_FcfEE7%s8%tF6Ap&hIi0Tl-1#GV&ascbkG9 z{1EeEU@6bbj`=YM#^Na~WA$gK0R@%zykN{{#$XoeB~b$^gW0i$*#MhRZ)xWjV@>+^ z(kMi6;v5#hJE#F=DMKfi3-zG<$cVjIBuQQ(Dr2?GZWu#-9ERXhREE}KF5H6Ia6hV_ z!9QoG`n`w}HQ4cQPE{&1nPm~P#N=~9=sfN|2otFH>2)5 zZs+f#_RLe{kC)F^$@BE4HOFuqi0U{MmFfwo2hTPaqcXGtmGX7wM%1R-in{M})E+pE z5qKB17oM3>mDwlMeHAEFr_cqpMhh_)zJuyG9o5l(Yd?hA6X#F^zJ%)FHcr6*;yxV1 zPHlqas=DWl#hlb9qcXP;$&}AqK|!zIJ6IZbp<1ruEPST85Bj$^aa$wI-)Yx z9hLfC);<`^P#=MLaV6^hZP*5nVOzcbQA}TZU;yfZ(U^quF$K?KJ*-!QWx%PZ%w(zQ zG7yHEQ6W@&JZd22u>jUIJD~Q$P^52f35MwXKSDt%JcZirS5Y(i4e8r^h)P}J3$DEm z7NFh`b$t)inh!-iXS_Mb&M!l~9UD;@-Gj>9Y4pWYxJW^3`4`s5&{{4dtxz3wL(Ob3 zYG$KR*H1!qJP(zDWvJ`lM(v>;r~w^9-FF)Od&cUwYmtBL<_9!rM9)y0E1{S{~BQz8kC6vc4EHO zS6Mv+wRWda*FVDIn6<83ngrAUYoZ3+7&WmZ)WkZX_E>k+QVy{8mwi^4j3qfS9hK7e zP!IS7`EBeSK&@Q{YDV9p9{3w7rOz-o=3x5jAR4s<vpDnpmpAX>|S1}>$csFWsPL9BrqXa_8WLr?>rg=$YjEk!z#QJ;5` zf-ZcB2^iUsR|jjLE*xaeFxQ%UQM>vAs)IXN1Opm*-dHS((f9_cM1kjukMZvCBX$Y(u??)!)GC)K{aPbJqM0wIo+jDZh_;oBqaN z`uBoa7>z6vbzwf#+9sd|Rs}V~MyMr8w)VcLwH=Mh#2l-yLhYd)s6BDO+E1aLe-pK2 zPtd0n2RC)8DuG&p23QnRFe}c(EVu|YfY(toc?&hrcded|8qh)1eHT$Py^JOB2F78I zW^MrGn~{G#s2&Y^aBH(O>cKrx1580Zcoyn`t59pZ9*bcHYKeYC&G;TF1736YoN&~D z3Ysyf`%5$@|GKaN4eF>3veCUEs8qd&^>GjCb$V)sws0L5K`l`!%!V~kZ%;kcOuL~r z_Y~AXS6~&~gXQp^k3uYk!Yy5j>Y&!94<_JfEQKpkBR**7ub97@f1?H*k>n;+6qVVs zsDanQ?ARJ}U>DT$eJ@$VTvX~_$2GVCt6`&7?!z$wH&Q=m2^ES0~b&k z`2p48UF?aEFc>?wac@Tt4AcAH#}&L0s2e7sI+%%i;5^jYFG0;@BWkI3q2Bkis1AR( zI=|HYuW1bGt!azed;?LN`c+g0Hv47$)2-nE265sTDidF$mf{*l;CKpzS>iXOr+(2Sbo2@qLQ{2@YjX9~$N8O)>n#elzX+#?+=z;H}mf#?20AHa}cF}x- z`jqDH=pIl3HNdJEjFt6Q5C)Ql&hW;V^7 zgZ|BfdO#Yg!;RP!cc9k#G4{fo-Q3$U67x}?g_>9zY9O1f{t@P)?#rN{44gr2o~!2n zP`f&+yX&wD=BHi{m6@)n0S~hF5mb|w88GmH;3{>XMp{~DT=Wk#H{d*56 z=q(6*(HUaqMrEcD7Q_UrH^jWu+oCekAGO;jqXv+Mn&EcTa}S|1@Rgna4*i=KL+Rgp zKp_sFqi&4jdl`i_Q15LURENE-o{F0BEOQZRX3J4avj#PgZK%C+5cS@lz-)nhU$7MQ zi@nLeM&iBXMwAUT(lAuY3Zotnj}@>YR>nT4UA`2faUCY&ek_Z(P|u0#;|3Oo8c-tY z`ueCn(z6fwS4SghP^u=NW-<-c;at>(yRZy?iOR@B)PsWhx=mXgb$wlP1Qwva29=SW zsEi#&P52~gbDr<(b8CE;295A3D%Iir_zNi($JhY=I*n`-??!(&&;|qCKw6;oNHQuT zgHZR6MP+I(mczZM0pCImAZVcb`$MRYLQxvZqfWF%Wuh}`7x%RKP^?aUENX9T#=`g+ z^2fWxkLlQOko#?S7&W2)AipNOXSfhs4|d;;?{F7&U(pn|))!H!x{kW>chmrahPbuN zgX*w2>NTu~nqf~Yk4rEceu{c4j-cL}A22&U!A9r}brWceOw{KkQz%1wUsT5nQ4e?< zmCD_yx8iHm%&(ya@)%<=_b}H%6^y4|2en7~VG~S6O>8&nd0(Ig`U3{*{r{PQI=GA4 zY|l{-$Ti$H7ivItQ3L3LIzJ3`-xLhRC8(LEVGi7YA^3r{??H8Z2$k6{Ri}UNA_cAa z73_pJu?yB3!Cx5hHPjxtjoQ^YM%utoGplR1!3gTTupADz_ElEjV)bvaEaz{bFM>kU zD7OT0sF}4xjl2(P#KX+7s2NT~T{i=jnWfgg6?Of`r~&W8aJ*#aZ=*g$e_#oGJc|6s zQ7AOprLaEghE}N5CZlFN9JMsFQA@A_o8dOpnm)ux%rVCOWws!yJsS0#N*IJqumG=f z5|*Oge=PY|>KBf6|LF84YICJq{iOLTYDVFyZughN80xLCI1a^c~!h#rv@t6}U zqcYPNm4QyE>ylA>#5a(F)_N)G1G3gGh#l|V*RrS^N0~399y}SfR0~mGwpFOTu?uy5 z2I{(_m>Vx*KD>j+bW4QBcaOq1L(sDicFd7tY2g+=%+1?6dRd&HJbUgidss zDTT$TH^6Gx5A~dtm=$-Umiz!l>is`LK_fkndGV(C3^n4MlU%A3P^m4C>Yz4i6ZJyP zaE_gS3)R6U^8;(&iTZLL#zJ@<{r~>=Ck4F@!IRx4NyJ>#yP_^k!8|zAT!HFfD{4mR zSO#~a2KW=|dH1n7=AGg)(-T!6hsx-F^y$H8DCowUs0=(nZLaK7-Hnl0o_YdCV^`G7 zQ&A~iZJxmd>e*j$o2w#f^YzBEI1)9`G}MwDeTDq%f}1pGM31o`hOsPKl9H$oR1MU1 z&CIT-feb=@YGg_m-@pu_aV4!c7E0n}I8j>(S zj=~~17nQP&s18nHMf?S|38QDb4(g#cVG?Rdd!YtA2IKG*RL0h$uFF6zvG1%EzPAgm zn}4G^Dm=$6L2J|!yok!kFw~5u;FthjQ>#BAJz6qvo*O_U>N^pQL0ATLz9MF!f3H3T zy=IM3YuN*1aRA2PY*Z#Tn1@iC^crTvN63S`KT#cdue!Yyfm*^iREK4;B-X|R?1zQ* z{?DhN2W>L9q1NnUGXu3&Cr}T%kIKYz)IcKVyLuezd{xvy8e4k@)bsnIHfM^}C!zoE z|I=0A#2gI41*o-Nj(RIT#Qt~;b70~EKA$*HKkRs!@;IVB^*+Q0l)tg_XY88ixR&7U z_WvW)EY353HV1_jID*(ixd%~$hLCp*`HwmFo)!Gna3 znbgCH<-~RBU-(shkRm@K4*i9TJK30VzC+BavqIchH zhOxA3W9k2-Ys3EYI7{0Q;wbT$6Q}KDedWI^@wpl}`L^Upp{%0|9wGE9>hSMyY~-); zTat6#DD&2NONeZCpY~HC<@#2q>Ww4Psqew6cpDoI=7)~2X!r%!`)lss>^j@cKhf5n z@-(73v4i^G#9rd}rKgML@wK8 zO*yxSNTjUegv0;wZ)auwW~pc8EM^4vH1qL82OkD+GcnKV9n4|0B@zETws3AU@gHk! zg2kyf$M3C8|7ND+BC(4oNh~KC(EbMYL4A?*Tg)p-r6<8x%DYEQr(A;AMr0mol|Li)ZU`PBf@v|B@CK4TK?`PNKrC!#`srD7~|L^CGH1@X>F*t#Eow%i^ zaC}QFv-2-d{)1>seJt@m%B=|<`-mgNDWW{*mSN`czzQ?*U&NpQ);~WN)g=nja0XWq z+w8)lx{&$-tVw)AxdowZ^CoeOax(EN<@p$gSBbYN>v)Z5OmwGSgXpYAj$;n@pmJ2k zbFv9Bg3wV4zjj6a#lmYzoTF_j_8)E03n( zeWJG3e-w>_i5`q)JbVSlt0s9eoDQ6xUc(7FtQa(>PH--?U zi4Rn_^CPKevvM3|9qB|neg89$cnY;RIgIE_`F*=E*)E8u{ua@VC}8JyV>v4i;<^_p zM-gW!ufQ61uh>bvVb^|y+o><~>;v79$_=8mUC@bgQDUmq2T*QHq!Ghun}MGaGbr~a z1`uPZzqvF%;c!Izma!?LQpb4>{e|?O66(YR`CHNpG&lA%aFi(hy>gm~HJ5Tg2Y0R*8|Cf2+9d+0t4?sZCW;dsJ!F z*4~P0-R@H3(U#Vul;`vPpDV9dU(fG#UwvQa{MI?wIln*cz3bgfCl+V&{g5YcvBz;S z!1D^@ry-t~p2_o)Us12;6_5A4P%MGDuo`B^hL{6eV@~X9=LcGQw4I-3F0}rY=4RwM zK5s9H9()|b@dBR1+n5da6n6tSidku2G_PW2+W$cf;5G*1WAksUOFO89JKqG8Xt%?B zI3Ek}es4XA25=a&;2G3|E}>?69Vv=;2UVdbW_W_JPA{{Xd`(hA|!U8w} z^Wsu-i~4!LcZ5VQ_#X4)FQ}4xB|WbKgkf&1hhs6t+7~dI_Dw8^nM-+IBt~HjCZPt< z0kdOw)N=-!W6`G<&LYvw*Pw3LfH`nG=EVJ|(w{QVqprV#8t4tw1b#(T@+E31b0xZg z6gBIjuJ2=}CsKbscsd<=z&z9lS7J8YhFXffs2LqaU3Uvr%174DTH5vJH{(zwtjIL_ot7=^L4vy^oeNkBcY9I9e9P!Dd6y1x@@fPGN+ zO}Fz~P8#R zDsT!lqwlQ$CTbw}Py_wL3`uf(As%_BmyEh^5~_l;F}J?|WhB}In~`^VJ1`XQSpQQj zK>G#i>xii8);u2dpo(T4)cIDZucHS>;7C-3=3pEyLQUjz^u0!Ml0+p5uI3&Pj#|T5 z)XWl5H&j7wwtA?Uv_ieGGinbFLJi1=x^E8Zz9rUPhuX~BQ3Kjjjrwb?588<@Q0;F} zFSumw8|Kf*SiJ{W9pm|jmZ~S}Gh2=M@emfmZ&3sM-ON|0RKP@*sJMgmK8O#+^CA?LtP(Z{pHOhe3kxMJ`$C*H>xyg z$e+I6Xw=$`L(OP0>Vcb4CEbI0@C51wS5QlE7xUqB)aRIo^5|g@fhJ~?tZTI4VsHK^LfjASjWb;r< z`T=Iq_rKAfuq(~aP#5mUGWaE`0#C3h2Gnuw=2)3_d(@iGGv7rm$ud;Qx1heJeW(f_ zM-A*WhVp*zB8k@a7HVX_qGtFKbwmETu0IO3wuz`p)UkFdY7Y%U?TOLWKN~fWHK--~ z6jkBls7n2aKGwkdo1_TF)pMn)hnZOoCVBW;5*I25%s3sEy&ftvXa)W8m+2J)48 z7Ipt6)OEk1D)0i?-(JB6)L$iP-+;d)V1LwSw9(v;df^$=(pAviMRrz@ieM34^R~e^EL8+23`ynr=t;S#A&Dt=9(+bZKwesLe1zLs-)LZ z1HXsC_%~+5pvLa`p{RBes&ch)Ir>saDv>%x#=Y52OQKbw|c0aX|SdMlIsshtc z6`6y2;d1PR>o6;3ZtA{@9GH`Km>Gq-z9jN|pI4DY53Gt>``1x3X^UE`eyHz!3hITc zt-S-w&_0X)uLV`w{LS2Eu7;X%2eX$s7_-p-Hs;ayKb}OTo{u5;A!_E^F+1);Ey-cj zK(3>f>KSU&#Wr^{EQ=wuYoaQUjD-W(yr}05ZQ-6b5_R81%*p$`*(4g#`=}AGLVbQ4 zQNP_=Q8yez4dg89C-gq*Cpc?MXAFkYu8z7t8TH~8r~##*p4S<*1Zn8g+KeG7g44~9 zQNP_MQ4jbLHNgL3F1&|YvZtu~yjHG1+ANK^>8^pQV6wGSQ4{Hldhf7S)L##pU>8n9 zwHKgXycG4~6{yOrMSn$51388)yLTS-;3BQ53?(m#T8jE@Tz?Ach22s24Mv?G+lKmU zq%*DK1G`|OxySlXpk{K}{1NrSd#KI#1g~O9irchzQA-ij)=ek^HIXPY7BzqbABkpG z74?ETSPz?_)^-tg#;vHYBWJ36VNujfs-o7ifwfy;80{{o84p42m2u`0)F$4EdY|t+ zNd(C?R3#pxmLRa5>(7Dur7MPda1G3l%}_JwjoOsMF%Qninz$A9XBwX6ZcUS3Fzo{cO+^6RZ%l+ih6K2)QkGr`E=A8&qVEw`524KQTH81 zE#YO<-nfV1>_6|hb%gQzsTmhFOQL305w$ecQ3Gj$TDz{O@4P<-Wnx!jaoQug*jHn& zMGbT#s$zRl_a8%F8Im(3u~8LMM%`rDu?)(cho zL8#3+47J8HPy>7qwX~b?Lp+Sp0sI?M4h-oX~Mm*OnEi}f(QujlQ?1E?h!(a%-NhpNO})Bx6?meRL_L@zvy`V6n3X80GD z#>6+>+I2#G6+JN$$6zonM*d>#tw2rSC)7-zpqBO}>ct8D-Tk#tOVJkjDtz7m65Ti+ zHIPLZjoVQ#IFE7oJ!)yZ0q!pUO7WKeB7=&X`1DJ%oz?*^EY|ByiZ$tmy!U*2) zT_w=~9@z!i2D%#yVh;KfQ3I)p*|0Wd$7JhIMZLHisl`7!iL z4`Pq-es3B{0bGy%k)dXG)x3vVt7n*q*$2DxNvL*1YmdZIw5MVS?!*KaQe}L^F&)T^Nm8>vGoL2z6a6)UIxixp0)7pN5%f&qHm}MHq{FP!+t6y8ai` zk~~38IQtOlueB*Q#4SN3tWUcMYE2hlZd{N2zEn@}bG6XP*v zxU&)Jx}m5gU4a_FUh^_ep#7VVB$^~`ge&<%RH-*%Abx@>;cm={$1oJnp(^tessg{E zu6u&o6PZW4wJwMH{iuODe-QP#eucWvmn+>Rc~K9JM6Fc<>X$7EwKq~wH*`T=*9-ID z2+WVuQI%YYdGQcx#urg*{SZ}&;J4j%#W0_~|2ic4L1~Y=V3;`vHGmBmfhRBqf51xU zjdBmFjH*;y)aTX_RhgcsfeyoPoMJ9T4R|XC>HGhJM5R5AdchUcCVGaNVeDvkz6$CE zb*3L54eLYQ45AKP&FCG0eNA0PlsQXr7Y21Up!X&pzG~>W=uC$3}PmHI3 zDQZ(4L6!C)mco~)ftDKYmLe5(J{?(GZyHA8a@11n#t=M-y6(I2)L+SMIy8_csGnH< zwMZ|BLY1zG*%?pLehZT@X#yJ&hvGf_7FEHcZ24sT61CgIC%Fozq6X3xRiPo1c+fPG zadhbO$THbo7=~J_NGyaEt-l58x^}3qq8G;DAS{Lp&D|JF`zosB-W0c23ZN=h8TI_` zK9aH|V^N!L3+e@DQJe27YEAzKHR4R~xCiG(RjeZFx|XOl?qv?J^J(T>)O$9gmf$+7 z^1k~dD#>%yjB-t-oB@0ysP=TqqZ{U<2CxeC`>+MG;66Kl1T)hpN2sML^e^|EDrPNI zMeCU@u^8>n7^3fgB8f^d4>gcg*52j6fZqqyKrUJTP1HbtM{Ulh*3L1*ZN5Ba1ZL-a zVbog3qb5=tdty7x#{0efBvjn%p?}zsMy_ROM!O5KiTrCjf6lJ?8L z^d%CiB44mKiF`Fyz|V<{<73OUKeCeF(eM9Zk_JQzJK3C*lgUrxA-i(|?HqRg27M>2 z|1Vrc|J!!1FKv}t$6aD2q5mFG9)k%TpAkohPt?%*hj76ye}m7=tcy|f$D#h8ac!)B z9_Q%mLmVR>bKtch)iqr?kh1)-xi*Xd}5M~Tv|>E+`6{^NDCFDFyT`5L|1M4;Um zNM3@xrnPDM|Eu?Q+Plfi<8AD%6C7XC{slkux7@$vw4_hRPefDlaYR@>{;`#g=foc3 z;lhCEyuLU?cVZ5~pW|LM zp<}1rcM8h|uqs1H263W0v4nVoc4yR~k4HxlVhvG?c%AbN2^}Ar$_tU_CgQB`E1W_s z=Ui#)`vSv>2fD$3*s8owW0_r~{xko`*N`u^wl2R!j3vG!b`o_sH-jiauH!3*|IgW` zmg~>P8kT1^b8=5zpFNmg7H>WAjrBpODul z#*r@|j+3_~?vqc$qIjKHPOc*hzJV!NiD>2TB|>|A-hx=(ytW4&y1yJK43T@eq-P{>j86qCIhts6gnrKzw7@e@yOQ|E+ZFCdv|} z=xj@TPw2=+Um|uR@{ng7W685x;~@D(@=y#W;)%^_+xY>sgDfvfu44z0tl$5PqZmmN zC;Jgy$v4=Asdhmz+V2u=i2QbL7nZcV7uO9U&r6&qUxbzHUhye0*RI`$TWHVln(LJN ze+2)7jqQS#nOI7^N#6wAPiXl%65WX*wC68Oi9fcpWbrCdI|tW)7_xIn NO8vN<$3~}x{vTG+cTxZV diff --git a/gui/baculum/protected/Web/Lang/pl/messages.po b/gui/baculum/protected/Web/Lang/pl/messages.po index 602a85d865..14934474c6 100644 --- a/gui/baculum/protected/Web/Lang/pl/messages.po +++ b/gui/baculum/protected/Web/Lang/pl/messages.po @@ -1409,3 +1409,12 @@ msgstr "Zakresy OAuth2:" msgid "Restore job:" msgstr "Zadanie przywracania:" + +msgid "API host" +msgstr "API host" + +msgid "API host:" +msgstr "API host:" + +msgid "Select host" +msgstr "Wybierz host" diff --git a/gui/baculum/protected/Web/Lang/pt/messages.mo b/gui/baculum/protected/Web/Lang/pt/messages.mo index 52783a3f0f50cf733a781a7c4238f1166a8a9968..682a3dca96ec5bc8eaa75eb9bd5d3a1f5aac8900 100644 GIT binary patch delta 10213 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 delta 10116 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 z^AqE&++F90Application->getModule('web_users')->loginUser(); $_SESSION['monitor_data'] = array( 'jobs' => array(), @@ -40,7 +39,7 @@ class Monitor extends BaculumWebPage { $_SESSION['monitor_data']['clients'] = $this->getModule('api')->get(array('clients'))->output; $_SESSION['monitor_data']['pools'] = $this->getModule('api')->get(array('pools'))->output; $_SESSION['monitor_data']['jobtotals'] = $this->getModule('api')->get(array('jobs', 'totals'))->output; - if ($this->User->getIsAdmin() === true) { + if ($_SESSION['admin']) { $_SESSION['monitor_data']['dbsize'] = $this->getModule('api')->get(array('dbsize'))->output; } diff --git a/gui/baculum/protected/Web/Pages/RestoreWizard.php b/gui/baculum/protected/Web/Pages/RestoreWizard.php index b9c8637b7f..f395a7812b 100644 --- a/gui/baculum/protected/Web/Pages/RestoreWizard.php +++ b/gui/baculum/protected/Web/Pages/RestoreWizard.php @@ -47,11 +47,6 @@ class RestoreWizard extends BaculumWebPage const BVFS_PATH_PREFIX = 'b2'; - public function onPreInit($param) { - parent::onPreInit($param); - $this->Application->getModule('web_users')->loginUser(); - } - public function onInit($param) { parent::onInit($param); if(!$this->IsPostBack && !$this->IsCallBack) { diff --git a/gui/baculum/protected/Web/Pages/WebConfigWizard.php b/gui/baculum/protected/Web/Pages/WebConfigWizard.php index e1c042ee0b..2450e99670 100644 --- a/gui/baculum/protected/Web/Pages/WebConfigWizard.php +++ b/gui/baculum/protected/Web/Pages/WebConfigWizard.php @@ -40,7 +40,7 @@ class WebConfigWizard extends BaculumWebPage $this->web_config = $config->getConfig(); $this->host_config = $this->getModule('host_config')->getConfig(); $this->first_run = (count($this->host_config) == 0); - if($this->first_run === false && $this->User->getIsAdmin() === false) { + if($this->first_run === false && !$_SESSION['admin']) { die('Access denied.'); } } @@ -119,11 +119,19 @@ class WebConfigWizard extends BaculumWebPage $host_config[$host] = $cfg_host; $ret = $this->getModule('host_config')->setConfig($host_config); if($ret === true) { - $cfg_web = array('baculum' => array()); + $web_config = $this->getModule('web_config')->getConfig(); + $cfg_web = array('baculum' => array(), 'users' => array()); + if (count($web_config) > 0) { + $cfg_web = $web_config; + } $cfg_web['baculum']['login'] = $this->WebLogin->Text; $cfg_web['baculum']['password'] = $this->WebPassword->Text; $cfg_web['baculum']['debug'] = 0; $cfg_web['baculum']['lang'] = 'en'; + if (array_key_exists('users', $cfg_web) && array_key_exists($this->WebLogin->Text, $cfg_web)) { + // Admin shoudn't be added to users section, only regular users + unset($cfg_web['users'][$this->WebLogin->Text]); + } $ret = $this->getModule('web_config')->setConfig($cfg_web); if($ret && $this->getModule('basic_webuser')->isUsersConfig() === true) { $previous_user = !$this->first_run ? $this->web_config['baculum']['login'] : null; diff --git a/gui/baculum/protected/Web/Pages/WebHome.page b/gui/baculum/protected/Web/Pages/WebHome.page index d2b8c60fb3..59200bd757 100644 --- a/gui/baculum/protected/Web/Pages/WebHome.page +++ b/gui/baculum/protected/Web/Pages/WebHome.page @@ -12,9 +12,9 @@ - User->getIsAdmin() === false ? ' style="display: none;"' : ''%>/> + /> - + /> @@ -52,7 +52,7 @@

<%[ Most often used: ]%>

<%[ Execution count most used: ]%> <%[ times ]%>

-
User->getIsAdmin() === false ? ' style="display: none;"' : ''%>> + -
User->getIsAdmin() === false ? ' style="display: none;"' : ''%>> + @@ -293,78 +293,12 @@
<%[ clear bvfs cache ]%> <%[ Enable debug ]%> - User->getIsAdmin() === false ? ' style="display: none;"' : ''%>><%[ volumes tools ]%><%[ volumes tools ]%> + <%[ Bacula console ]%><%[ show console ]%> @@ -373,12 +307,12 @@ diff --git a/gui/baculum/themes/Baculum-v1/style.css b/gui/baculum/themes/Baculum-v1/style.css index d31c15b6cd..49badceabc 100644 --- a/gui/baculum/themes/Baculum-v1/style.css +++ b/gui/baculum/themes/Baculum-v1/style.css @@ -968,6 +968,7 @@ span.tab_active { height: 9px; margin: 0 4px; font-size: 10px; + vertical-align: super; } #graphs span { @@ -1104,7 +1105,7 @@ span.config_test_loader, span.config_test_result { } #users_list { - width: 720px; + width: 890px; font-size: 13px; } @@ -1123,14 +1124,15 @@ span.config_test_loader, span.config_test_result { #users_list td:nth-of-type(1) { width: 200px; + text-align: center; } -i#users_list td:nth-of-type(1) { - width: 120px; +#users_list td:nth-of-type(3) { + text-align: center; } -#users_list td:nth-of-type(3) { - width: 400px; +#users_list td:nth-of-type(4) { + width: 340px; } #users_list img { -- 2.39.5