From 573c3d14488ef74a4ce84969d292626b31c3f6ae Mon Sep 17 00:00:00 2001 From: AhyoungRyu Date: Mon, 27 Jun 2016 10:35:02 -0700 Subject: [PATCH 01/11] Enable credential info to get list, edit and remove via UI --- .../app/credential/credential.controller.js | 149 +++++++++++++---- .../src/app/credential/credential.html | 155 +++++++++++++----- 2 files changed, 239 insertions(+), 65 deletions(-) diff --git a/zeppelin-web/src/app/credential/credential.controller.js b/zeppelin-web/src/app/credential/credential.controller.js index df231635b40..1fd8d57bf3b 100644 --- a/zeppelin-web/src/app/credential/credential.controller.js +++ b/zeppelin-web/src/app/credential/credential.controller.js @@ -14,43 +14,136 @@ */ 'use strict'; -angular.module('zeppelinWebApp').controller('CredentialCtrl', function($scope, $route, $routeParams, $location, - $rootScope, $http, baseUrlSrv) { +angular.module('zeppelinWebApp').controller('CredentialCtrl', function($scope, $route, $routeParams, $location, $rootScope, + $http, baseUrlSrv, ngToast) { $scope._ = _; - $scope.credentialEntity = ''; - $scope.credentialUsername = ''; - $scope.credentialPassword = ''; + $scope.credentialInfo = []; + $scope.showAddNewCredentialInfo = false; - $scope.updateCredentials = function() { - if (_.isEmpty($scope.credentialEntity.trim()) || - _.isEmpty($scope.credentialUsername.trim())) { - BootstrapDialog.alert({ - closable: true, - message: 'Username \\ Entity can not be empty.' + var getCredentialInfo = function() { + $http.get(baseUrlSrv.getRestApiBase()+'/credential'). + success(function(data, status, headers, config) { + + $scope.credentialInfo = _.map(data.body.userCredentials, function(value, prop) { + return {entity: prop, password: value.password, username: value.username }; + }); + console.log('Success %o %o', status, $scope.credentialInfo); + }). + error(function(data, status, headers, config) { + console.log('Error %o %o', status, data.message); + }); + }; + + $scope.addNewCredentialInfo = function() { + if ($scope.entity && _.isEmpty($scope.entity.trim()) && + $scope.username && _.isEmpty($scope.username.trim())) { + ngToast.danger({ + content: 'Username \\ Entity can not be empty.', + verticalPosition: 'bottom', + timeout: '3000' }); return; } - $http.put(baseUrlSrv.getRestApiBase() + '/credential', - {'entity': $scope.credentialEntity, - 'username': $scope.credentialUsername, - 'password': $scope.credentialPassword + var newCredential = { + 'entity': $scope.entity, + 'username': $scope.username, + 'password': $scope.password + }; + + $http.put(baseUrlSrv.getRestApiBase() + '/credential', newCredential). + success(function(data, status, headers, config) { + ngToast.success({ + content: 'Successfully saved credentials.', + verticalPosition: 'bottom', + timeout: '3000' + }); + $scope.credentialInfo.push(newCredential); + resetCredentialInfo(); + $scope.showAddNewCredentialInfo = false; + console.log('Success %o %o', status, data.message); + }). + error(function(data, status, headers, config) { + ngToast.danger({ + content: 'Error saving credentials', + verticalPosition: 'bottom', + timeout: '3000' + }); + console.log('Error %o %o', status, data.message); + }); + }; + + $scope.cancelCredentialInfo = function() { + $scope.showAddNewCredentialInfo = false; + resetCredentialInfo(); + }; + + var resetCredentialInfo = function() { + $scope.entity = ''; + $scope.username = ''; + $scope.password = ''; + }; + + $scope.copyOriginCredentialsInfo = function() { + ngToast.info({ + content: 'Since entity is a unique key, you can edit only username & password', + verticalPosition: 'bottom', + timeout: '3000' + }); + }; + + $scope.updateCredentialInfo = function(form, data, entity) { + var request = { + entity: entity, + username: data.username, + password: data.password + }; + + $http.put(baseUrlSrv.getRestApiBase() + '/credential/', request). + success(function(data, status, headers, config) { + var index = _.findIndex($scope.credentialInfo, { 'entity': entity }); + $scope.credentialInfo[index] = request; + return true; }). - success(function(data, status, headers, config) { - BootstrapDialog.alert({ - closable: true, - message: 'Successfully saved credentials.' + error(function(data, status, headers, config) { + console.log('Error %o %o', status, data.message); + ngToast.danger({ + content: 'We couldn\'t save the credential', + verticalPosition: 'bottom', + timeout: '3000' + }); + form.$show(); }); - $scope.credentialEntity = ''; - $scope.credentialUsername = ''; - $scope.credentialPassword = ''; - console.log('Success %o %o', status, data.message); - }). - error(function(data, status, headers, config) { - alert('Error saving credentials'); - console.log('Error %o %o', status, data.message); + return false; + }; + + $scope.removeCredentialInfo = function(entity) { + BootstrapDialog.confirm({ + closable: false, + closeByBackdrop: false, + closeByKeyboard: false, + title: '', + message: 'Do you want to delete this credential information?', + callback: function(result) { + if (result) { + $http.delete(baseUrlSrv.getRestApiBase() + '/credential/' + entity). + success(function(data, status, headers, config) { + var index = _.findIndex($scope.credentialInfo, { 'entity': entity }); + $scope.credentialInfo.splice(index, 1); + console.log('Success %o %o', status, data.message); + }). + error(function(data, status, headers, config) { + console.log('Error %o %o', status, data.message); + }); + } + } }); }; -}); + var init = function() { + getCredentialInfo(); + }; + + init(); +}); \ No newline at end of file diff --git a/zeppelin-web/src/app/credential/credential.html b/zeppelin-web/src/app/credential/credential.html index 46d83d90757..d4131b19be6 100644 --- a/zeppelin-web/src/app/credential/credential.html +++ b/zeppelin-web/src/app/credential/credential.html @@ -18,53 +18,134 @@

Credentials

+
+ + + + +
- Add credentials for entities one at a time.
+ Manage your credentials. You can add new credential information. +
+
+ + + +
+
+
+
+

Add new credential

+
+
+
+ + + + + + + + + + + + + +
EntityUsernamePassword
+ + + + + +
+ + Save + + + Cancel + +
+
+
-
-
-
- - - - - - - - - - - - - - -
EntityUsernamePasswordaction
- - - - - -
-
- - -
-
+
+
+ Currently there is no credential information +
+
+ + + + + + + + + + + + + + + +
EntityUsernamePassword
+ + {{credential.entity}} + + + + {{credential.username}} + + + + ********** + + + + + + + + + +
+ + +
+
+
From 64bf6fe7d50f680a9a7d4a12d2ab45ce30ee21e8 Mon Sep 17 00:00:00 2001 From: AhyoungRyu Date: Mon, 27 Jun 2016 10:35:25 -0700 Subject: [PATCH 02/11] Update angular-xeditable version --- zeppelin-web/bower.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zeppelin-web/bower.json b/zeppelin-web/bower.json index a414653cbbf..94d228a0eaa 100644 --- a/zeppelin-web/bower.json +++ b/zeppelin-web/bower.json @@ -23,7 +23,7 @@ "ng-sortable": "~1.3.3", "angular-elastic": "~2.4.2", "angular-elastic-input": "~2.2.0", - "angular-xeditable": "0.1.8", + "angular-xeditable": "0.1.12", "highlightjs": "^9.2.0", "lodash": "~3.9.3", "angular-filter": "~0.5.4", From 5768604f5a59beb29a72b3b23093c2b62eccf6ec Mon Sep 17 00:00:00 2001 From: AhyoungRyu Date: Mon, 27 Jun 2016 10:34:11 -0700 Subject: [PATCH 03/11] Add datasource_authorization.md to index & navi menu --- docs/_includes/themes/zeppelin/_navigation.html | 2 +- docs/index.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/_includes/themes/zeppelin/_navigation.html b/docs/_includes/themes/zeppelin/_navigation.html index c0f32b6a282..9feda62f31c 100644 --- a/docs/_includes/themes/zeppelin/_navigation.html +++ b/docs/_includes/themes/zeppelin/_navigation.html @@ -100,7 +100,7 @@
  • Authentication for NGINX
  • Shiro Authentication
  • Notebook Authorization
  • -
  • Interpreter & Data Resource Authorization
  • +
  • Data Source Authorization
  • Contibute
  • Writing Zeppelin Interpreter
  • diff --git a/docs/index.md b/docs/index.md index e120e7ae1ee..141e7f6aeef 100644 --- a/docs/index.md +++ b/docs/index.md @@ -167,7 +167,7 @@ Join to our [Mailing list](https://zeppelin.apache.org/community.html) and repor * [Authentication for NGINX](./security/authentication.html) * [Shiro Authentication](./security/shiroauthentication.html) * [Notebook Authorization](./security/notebook_authorization.html) - * [Interpreter & Data Resource Authorization](./security/interpreter_authorization.html) + * [Data Source Authorization](./security/datasource_authorization.html) * Contribute * [Writing Zeppelin Interpreter](./development/writingzeppelininterpreter.html) * [Writing Zeppelin Application (Experimental)](./development/writingzeppelinapplication.html) From 304e68484dcb05604babd744e266267bc8675063 Mon Sep 17 00:00:00 2001 From: AhyoungRyu Date: Tue, 28 Jun 2016 00:14:33 -0700 Subject: [PATCH 04/11] Add datasource_authorization.md docs --- .../zeppelin/img/docs-img/add_credential.png | Bin 0 -> 167834 bytes .../zeppelin/img/docs-img/credential_tab.png | Bin 0 -> 30166 bytes docs/security/datasource_authorization.md | 57 ++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 docs/assets/themes/zeppelin/img/docs-img/add_credential.png create mode 100644 docs/assets/themes/zeppelin/img/docs-img/credential_tab.png create mode 100644 docs/security/datasource_authorization.md diff --git a/docs/assets/themes/zeppelin/img/docs-img/add_credential.png b/docs/assets/themes/zeppelin/img/docs-img/add_credential.png new file mode 100644 index 0000000000000000000000000000000000000000..dcf446074d0869f18f28d8036ed6693d34694148 GIT binary patch literal 167834 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
      5G+%YpLgYV$=(E&!JT14rP(#Z4E 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%0AYDpw3^I)cL(vt)0B5Hu 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

      LFchkUCfyAJXCxLL=6UJk7c7B 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 literal 0 HcmV?d00001 diff --git a/docs/assets/themes/zeppelin/img/docs-img/credential_tab.png b/docs/assets/themes/zeppelin/img/docs-img/credential_tab.png new file mode 100644 index 0000000000000000000000000000000000000000..66a1fbed56ec941374755da8cd1a3e025ab11645 GIT binary patch literal 30166 zcmcG#byOU|xA=*M0TSGT4ibWUaCd?RcPBUuE(w|;K#)LicXxLiNC*%dg3CZ~5AMGv z-?#6*-TiORSB^yk-+KZ2d~49 z)1}+@%PENBi#bm6&U^>ydzznQ)1`xP$)6M&1Sd-L#&xolD zm`F;P`n5HE-xtj=WsRt#4Ro1LVIz)FKnXA-Hm{NN}g!K z&{v(vAQexzB@*nYCt1Q?FGuTr-BUx$uf@;pODC$|JsJ%n3$J7OL?-;Dtl8&*GmqD{ zJZsPw(6V)b=Y-7$Nv@WatYz#Yu-rGMtRlj+Q`1k)KTRj#rrkhqbO} z%I&Z0DXe^!Wyf$A=fj3|-?M>_HPTMT=CcfFSTmz0KM>a;*Dkb+9L=pCbLBoNqRhRc zz0f7(6XMXYT40Lea79}9ociFa%afj8_H`g4 zezf1q70xoMyeoelTC9Dkfcm~fGqf74eF9HPp)YTc={=F`djxAN@Pr%jC>3>J+YaOE zPI??z&Qm{Hms>|~PQ~6^M{(f1?c)2nH8PUq09r{27LYXdl@*;Ndx&lMWh%O0hcx+n z{s%6?z@yQ{t#@zCLlf?g5a-s#IE3bSNvj(^iXntRT2+MXuG>Ox?-xxob_mfPbuuud z6s#m+P#_Wkd}Itkup1#6mhKQl3qdySrh*2_<6wU4cGo?B9)qkmigem-u7)(&ZC6d{ z@NA)5MGf;J2s!&DIcib29t79@ll>}|Az8;NDha|-H%>5^4*Gcv_k}burz8uGLEp<0 z@w-?KI#LBm^%!^P*RU9$pLqGt8Rd9sg<=H%===e>VhDUa12@H>$y5C$y@r}I5NgRZ zyt8np*^Ttg%due*e4#AoHZECDVifKqT{hlfgYS#c5oRp)eH+sq2RT{zNB0?r;;)yd z-)U+rSzh3qV^*t|BbEIit=7J(s4_J#r@9TpcM%-vV};*5hpj_+Gb7l$bym|(^xM&$ z`>R&5j}h;fgJj2Oba4#Pd!W*if@VZHP&J8JWqu`ohM!&5YR7sd* z`npZB6nLm;J()D-H9k7_K`XqJzO<(_rPQkQR(x~@Q zA5xnOTQ)6+^-{G`t$A+y%c8x=Mk!4MAG)s=^otW)wCjHxR%GaB=zp3QoDZ5uI#8Z3 zYPj_v5i}M|5!`c+-aFfw@DOqLY29;I-4?Yj1bO){ z1YQaj@H@J+!pnEbH`-y>>6ks=`>k?@-X(pljIO+{L^FJJt#co8U0A#XJi_lEq!=V)(N zXyr1WYLj?dXLn|!YK>~EYwpoM&|lnF+^<_aTWWQ&J5BGk1 z^{LdnR7nnJPMQ?e=af+NUj5$jJ1Hs>>O|{NDoxZx}l?C<+smIz)#p=l5;5itJTJGyNStuRZ@A`H2x44~-XL z%+iZ3xBG2s2iZ-WLTqIJfP9PEA5j-Q+3&HH=$2L3Qj}06qUfb+lD3=#Pk9$RK6<+0 zxY;rId~h-GT9lcqjNYDKh`Nn4G(GN{8?*{Gy4Ey0l_K!r{nu_uH5#0)*3HUM3Y^av zUR%^YlYjO9YQf(XX;?DdD4b)_3lok*$5!oDMneaQ&iW4x@fyB4zgo+4_fIh{zF>+i+_j%s_+&hS=PR5BY~dfrE#Z!zyPH#%lJ;5gzqKVO)w z9e_;kDrfOoJ9KLAXv{Us*bn_>J!*1oG_L$xYByWhQQ@#qbkKgl=Y?`;Q_5ReIjgX! zSA9BAd1XY=#s8?@WZ>pCcgX(cj?~4`-SI<)hS3sbg-F@%xbHi^mF1ETZI{;v_O{gy zv*SN)SQfA^A}+)p-)zk6p-E!bQ@D%HLVj+KCH9{67AVV4rWXcnM!t7ZR9760jiGg{ zaHfrYIt37Zv@Od)&9G&@=F$u~S6ZFl^K2CU|l-eKBxgWGy+G zE<^^oa1ZtB4|hA#rbQ!<%(YfAqY0kIz}DgSvB|<$7QHqC%$$(+PV?&pip!be1{M@#R+k zvh0!LHt*d&gXl%~k;GPSa;O(&4ONGC`sJ0I^9lZZ+?S$O)xFF)QK5O_v6=gigQv^H z!NgMcuL77JTQ&-IhNJ>~?xzJ}_{VPFUfErpf8ir_wp*U>awLl+ZGU9jS{l2Zz$T@# z6B7*BzluNJ*%>Pz%^xM}O7^q8C%rj8gp3?l2fngY_=-g0V53ipP-Tyh{i>%9xxN1# zf#oH83Ak1$k09s~YURaK(jBK5MU3DQfdKks9nUly2`+>gyWT~gBNb;X>5|2^^9UK} zu`soN#}R#w-8KF!a0;WF7=C;__8SgoZv)R6Af*3FSh}T?gj(MnyvLiGRzMUR>_X_3 zbrAC~G$sK|1$2nKo*M!J(W|EqqJlczFnbY=S~xqhnOQoUTd{dNLV(-| z2*Tciz)wdjcQdfJql1&1ptlIkzZ`QqHbc;5TeMY#cPA z7+^41*wymApt`i|e-#H(A~ZJc?hrwCb}uh4HZN{AXIE=>P5}V{b`CCfE-qFe2dkTp zle?KWtCJh;e=7OE>XEi`vv9SAxZ65AfuHI%Gk5lI7onkfYUscJ{?kt@Z`=QA$;s`% z!~z6lf4alY$;QF{-*p2;g`chps@Zy5Ip|8;I$Alo0d0tK^Y9D*%m4qn^FJ;AuabKI zQ<8`4|5oyU-TAMQ!t751{4at2Gg|+y0>dSWASXoK8VT2&MHMtV{W z@b??|F#Ojy@SERagbke?_-0p-meBM@+&4l?Cy=@DR~(U`1JPtNNYv6mk~c<>aXCz} zUI!!6ehGss6_ZGa5W21Y$^~Hzt{@aK&`99Y(Sm)Fe&O+QKHk{*$SA8`Dvj>%|2q6t zw&L7W#yq1lZPMj`UP_JmFTLM;NReLd z2E7%6p{B4HG%C@)hLZUp9W1paadC5_HxKK!L=cq|EAVmIeUroi$$%|ZI{j>An!!=Q z!ASbGmf^BeAU=2X=8!;lKBq-_HFhQaYGwCUC$K^?7zZ&Z^6u`gp2jeS^?``Zus8=7 z7R4b|zFl63^MRJZU2w+a~3D+#dF4$ovXWLohv5sPm22`=oMTNz`rI=;}mC!=1J2Pw3JSEHWFR$lHy!f|09 zh%&(_h*^LpG2l1pOd$hMNM5ia9wyS0axvh~l*8otB%5P#zIjV@lOa+YQX3x4!SQIJ zdq`hU(2+!OpR{u>poI~K4wpquq9Z~H{->}PsW`DtPzWtG-AQmDA26*Xo0sc)U&(@I zPzeCNexw1Wf+g(xJ0km;$^yrQ#__|Ywi3e@SIq`HExWO7L<-lR)S{uBEgZ1s5TA`s zALrol;Zn>`DL-pKv+ljJ;N_y*PH|rJ-?(<&Nf4Zfxn14+3oXzUaoF(CP~KP3n=m3) zeS-6PCXK@9=Z8yaD*SM0@#zolPdHA(iigb+Df*mZ;Eg$o>3+ zY{D#*LUxy!-{$`2{07_lVohFp;rwVNYre_Z8ST{+J2XwLxuBLn>S-lGZ}_PIh{hf0387jG`Z|Hkvc zhRfu%s8#|Ur)k!H!QX3+N zuz$sI;>15pePh49kz~UAX}sfu*X~?hQOnmK+^&D*I|Pt??50a)q(ZTx=sy@vB+|i# zE4yN}JpvN{GCN-`HKhi46wvy2Mh|XkU1Yq@z+WD#dtv0gHm=#I^h~QnmkkAjdJ#t+ z_6!(bZurB)?U6p(P~NJJ*U-+vo`G|R%uo_Lp9HqZ8BUKOOKfF6&f!S!=6F_-sH`Ua z?3Z3_qJ$=L1-XEGZ~|lT>g$#&9#*nxt{tK(%txecUnRf!PNC4niHsc4X(0-|r0mxr z3oWmc5-V3!vL5b=7*~dnCEHu&m<7u{wFZBJ=WB$L3fbqg9~b{-4_i&&U0V!mUzB{>}}1dSZ{=7)RvLLnJp&@N&a>w8!Rr^PenRGxuIq$%|Cy&1mC zaqmK<6iKnW<4*%zAFm*#+7+oSs?Z`j94Ds)*82RJ3{AC@Y!#vT&KW)bXKylnl{}N5m~p0#UMxjyHNi5IKJ?xwyQ#pn#*XWLe|iS^=4##Myms9?#4*sAL*1jb`;i zg-&NL8E&JTiN{alw$e=HVOh^_i(|MRnp409<1U~co*iDFW$-xcZ`a|vI#`tE&?e;w9B!ipWwgA;dgcQ(mw*Pe8 zYwvdjkKGglH(qr|2qmAsj+&Y{t!yNCb_4dt{&!?$=gqE71f%PXCH`S+^pTqO-e|-k zwvjmalfLTJS1yV&gZ#f=B%8sF>)l0n>4bVb#~~#W2Q>pOU3hM|k9%2Zwqq*> zlco*D-w#jq%C(68s%{fnB4*y!7oC`ulJ%Bk)kiEL@Ti3)U*!(&&|#TZjW#hd`oSp`)C6D-jw zsd6Rfz-&qI@6K`NRJm~ufw1%R`_kala==T$-hG zQxn~F2n1ieSq<6L{wSJ4=+|tM(^Be)z!tf3CjHoV z;*^_D+1ewKHro04Ib{8-&L6g=UIesFIlIod%e-2Yk9aQ>zwB8sFDPW3@>yB44?{;) zk6Wp^ENR)e4Ef{3`uA$gRz5!H5Z%64ldcO6TPhXiP9lA+4AsAmAoza&LU?wu;Ea~> zpw;2)u{%>m)nGG@q!3K*-pJ2)2`q5z!B5gxZ^96fpQ$Aj&P>S zWTEo=AQpy`pft-^C!qQ3m$VFRJxF}=<{0+82Uw*ohgZpeUFo}^3msO-zMiWJ)Y=$^ zSe0_Wt0b%`R-~P?L?mOKGwc#1K_s4as;XB}^vg?%3lB6aTvl_{#(LDcUKaah06eV30QA5(4R6?a*YFZ4!U*nOVo@n1Q%0f2 zpqNj!_<-H;qN!SC;m2=1PKN+hfyNxH&r!|+GQVGCK*n|XCRm3pBSg{R^g$3rVe+%q zE3Htgp+r>HFJ>B28G;_gKmw}KV;WU$Jxb}j9>w=frFDSbaJ8{@0ki(#=Mg+=iIHqE zuSi%)tErjnQO@94NXmDtCJHmaN|17UM7{U#)ysz|(}(Nl0kKso zlHa4Nsit~3V+>u=;bsk=i1||>)D`9i)f8PmGot$S@5v5E1|}Puz^=yYbN?jZ+m_DP{A&#mRT$eS)lfqf)IamWnr5mHs8 z5P_1gt9r~yMQ>}02?wl7GHjEg9_AfdWIAR^4Le+~xZh-N`E3O#+DrxYIdzdtWC`oab{K03jYnWhOP&uH%M62Vh+nP zF0TwK$+M1V*#v@iHQDc?T0b_t{a%WMvw^ug_LAHSewKdGW*BycDXC|W z?M&8mG)`}IF~YAA?k$OfgWg1d$0j=-hl+n(POo&!doA|u@VW;Qa`1)W&qS$>2`5QEB_ zV39Y9Oz?R}f-bO{I$-ayZa~wv!(TzuZ2Ag1H32lB1L7;aW`U9s8h+Eo0sZHKjihud zVE#g5`Y@4}|5=j0qgY8K)P}@rbn-aI;r}eq(GvA!;Hk&dOjiTOf&MdS$Dm>Ev`{j1 z>TqI|_Wu}{nG|fClFe+{@-g65{C^f`mPP?b3Sj&~6wD>S0BkU%Ud%?v-H`?H;Ys4L zgS-KYjv2ZqB4lU|g&2v)f+f0N|Fb|vi{6@XQ7;y+e(MVse_|by%@X)D6Hz!$bWl2D zoMYK1S!OmbzH#YMv>!%UkNJYLFryS?{a$Z%3I8vqRe&a=4KpW7wgo17UoOvvcWxSVq<#?5Xb z9Qgg(^qUgSvG~6}c-VEH*$*9loX=*#OMHJwm{Gy}7LNfW9V#vxN=;SR041X^{HFg8 zI7B0o5Uz!3j~5KnL^j3UVV^`f}= z??2{Ll>Z8U4;Pn}m31MaQuj0j>Bzr9(LsO0MCy^^F1RjAP-YZ^FV^39jDSYXCBc+* zc4|I#tK@TFfQrc2>G4Z* z>g8%ES*8u9o?C!F<-zEJ-0i6wqgsqAfm;6sdQRcIX2JuI|0}}Po4n^%@vL%IgId{K z8_Xs4*U0x5^eZ-DGjWiPfeUaN(VzXoI}xE?oc*5q5;6S=sV4IIMP~3k}MOjmM95ikN~&e|V=F_54cp8fb$10ObMzXBTI-MksW% zYEe4tV^?5jYKwFe)i-3AK3@F?$3pqUH@3iZ-ftAR%S4Gf-}AIt9MY4p)QepUdY zgOCcyf_5;qCu6p{viCb$G%MdmNdoO!OCd3&*OLW7SZhUALq>R=b>Qrcoxc4(l8pr) zR224rDG7d#1YVL*_0RQa+bEkBD4u+=HkVBn03~Bu`uvSGzTx_V*Snrhhuyh?S5c&k z%t{)s-u~12#Mf>|c9lYQYqrALgi^)~Cy(hIWE8T#Itjka{IXYuU6z>Ju3k=sfwl79 zjPqTsrNsNinYZZT;K}wHJv)E-jsJlkQlm26xu?FOQs!&zWxq`H zJz%~AXvriA<%j*6lE8v9iGRHf1KpkUQwa`_%TZNKqqcKww$tE-3f$i;M?oCF$Z(~OIer)tsb3e?glfy(?X*o zF6%#t8Wb;Q`fzt$2_3TB^+4qyFS=)ex8kzJv6#dnGNCRu+0S4#t^J3n`k?qf-g_yh zt1)&5NoNF*JDI>kEheV%oakz0p3xi8FJ2rh(CViD(<$TE?slKk=kR&yi0HN@H-6-G zg=XGsu7Pqg~S`#!HawgO?!wi3V z)6Uui82an8S_>$t{1ih?cVhbC?(U;SfoU8oaA6R-P@tIf zzw36}{8bIzlWqSwgz{^{vKhBB&hp>`FD5?B3beuWw0lG&fQbK~*KyG67|wm=Ul>() z)P-4@TPY+Rxon7uDoTL(ri+r#RDt$M5a|td89Bzedj2L1Bpk)g&>Q<&FtOFicX%nZ4|Kuk^QffBF zW5cgfuHTpAG((@E*H3i7{Q-@z2TZK;%`lyRf=|hq{)l|3pRfwhX-)PCRHjZKqY3rm zREF9FH!w$zWxJywDVBg-li8pTne8IwtmTf_=|>`YR?F7n7KcE*%}CJ=f)}mCWl5cRUKuS+j9V z#ew>+`wKEwkN;7k4s!RatW${I~Uzx z&rNppOR#9V{@3t#ogbf2U4qZvjqOUa%ldXrKjmp058W_xRlDSl|155p$IlpQ9={v+ z`-xN@TfFH?BLgao4I)aUTogLOpe+BJ0j+{nI{nT|nP!$HbJykJuyp zb{2?;{EHYx^UYPT&3t`{{f#^NbGc^kSYRKE;*ibqyGWs5bMGmrKjYSh$vo=LPd~^* zhbCC#AhwB+Cx1o9hs)mG4J4g0nFwuAVLP8b~TJ@G18=RU_l##MD-4Fv}DI`jt7y$wA0 zhXB8oRuw*hQtmy$G+^j+3pi0$n+J%Ey?eBF>jp5Ox4#XXZE^S<=ktk${{H=2?7A^H zRc$7v%BZJfcmJtAj2MAvjRQQkWo9;@7!3XMbAXNt2TBZ4W z)sHeXhFi(hRSU@$%jHIGiDTGjIe^DOv&-MFjp>9K8EG7cZ4;}EaExH_^y7pzBS+8L zU;yu2ArjpDZ)U*5wQsF?!TqGF*mRbYb(UYFzv=PL?ZE4-F?c8yC6^&DJkxtEJhl1Z z{wQEihR1qM)bGaTTgkh;&)jcU))D<4uD2T4MpFX_WH!>QP*GI8i>-j420m%U+2f1!RB!QM$Sg&mFD(tdxj0R7HW z)H^Hu_b09UyloMx%$!Bw`KO2bTa9{)V*rWo3Nw&oo$!CB+QlmR)PQhSL1NDrdJ;H2 zD1|MOA3mD$%pOI@&_!l!h|H(my%`57o3=^I;39e5Dq3a;@P>R{_PaE)_L$0*!6X&& zt#5P%g~targJU2tE2Q`6O&=}~U3TPiF?y<;%w3*iVdH6nyfNXY#92KMa9a>EnqAlZ zS1M0=-I(_@0>a?+{;#j)6&vdoOhbk4W8zOBa75^-uWrUQxS|IM+0n8A(U=8J)V5~k z5#&oPQn!INe^3wsg?gTRC$`^Np7XzbNHlO7XQ#wk?}Ur~=1k@=Ly98d433EO_Gm zM3EbAuD&jj#_y6#iI~iHzCA8=Yi5FBi-Hw*QC8K7aZP6lvyzn1m(Ocj@o#%5p)Mwf z`5I1k0_G~_xT>Sfs)+HQo4Y<~!4BTMpnic*Kj9-%Zb)Qu;8_c80}dWA>{Ync$<1CB zS@?7Iq%VZbyP}r|3p1zOnL`(?xsG6Zd4&ByDd41Y{o9Z;v^x7UZ%>fvVapb!-DF`D zy}f*gr@-U&Xh38~(-I%s*pIPMl4e{s<4zr8p8|h@O5GYs#Tnk51xN7?weRAt)_mT_ zrWLpSGa+tRv%lGmEw*2$@4*P|NPii9l<+$p=96&5^=paJ{CIytW4IlTWLNua%Gy|5 zdAEDH;{);+1f;=Do@{sfpo4`bwD@u%CNwR=@K7x-*n$VB)dFW@p~)- zaS>C*#X61F>cHBXX_qh^v=?siEl6?Pqr#K<5_)gHzF(WmQwia-RU@hn){w?mqjO$U z5!i?ioDgy4b-M?)RVC6tI$7<4Sl0;z`Ri&;Oa5_sKKq_b4blh}Ls<8JL>UM_IpOyc zZj{Ok7Z2~&E!8zs`Cs+qqds%Gzd8zdw4X?K8xinz$`x;O?xvsT6o2`4m)9!qxlB4W z|EiuE6Jp$mQ!n7YQ)(6r6w5XyXW;!g=Z4_;YjAMlU9luizdJ3NB@;a)UIF8t~ ze8opv6&4;{6^Bss<1T`tQFMa2IpunCR@Hye3I|;Eeib%NKS?5jmML}q%GbOZj0xQz z=3C)8@mlsNdiIm@^;R$CVTeUi0iBo;5v8E;$Gg>H3Iop*3IBpo?j8QF8L5}?@0Ml{ z-0_^6`K<-~kEXF0C$-O%cW_1O%qJKXCh|?{ZDQ^9&!*|y6PR^&-92yL>C{^UN;<$A z!ZmeF?|UN<*ik6ioyzWAeID;GE696{KVThW{ z<_l-#?}tZ$FmIfQp@;2<&ghJTAJ8PG>zhC~% z?-tij({7<>Dj5ZJ&!H8&qG>CQj)Gc{oGA{b^WK zM8#)GN|zHUurX6e{AKv)i2^nG|lq%10B|9P3 zpU4qlV6QH!AuvUP*JkK6-Oa}SxlsE&WRMPx2w~SnuT~*L*=~^k;i#Eq;wyo@keBDu z9%H+X7p}WsFZ_(7tq%RNVa7NQi$c(w_q$32ulS`f;9`Qota+mQa~PnQc$f3S=9dY3 zlD;k{GUA|_*O`s^YupjMFFw7*V)velBgG^FT+hW@H26f$;DMk>UDEGCuYhMB#Z^S+}a^1zK)t%AEb>Nj}4Ev*&j!{9A`9gCa*E4V1 zIl7x3G^*`S^6jK%X)!^NlZp43I90+PE5v1g3Fd} zw-do8_lT-%Jmx2V{`Pi`XJAFL8Tmf*q76=lQYdBw@&YNciNtW~8*Xi?)*iG6m)q&! zaDN{@t%cP4Vyr9FA!`SiPMFq@;qrx<6`+alaK-z*JFIQ{v?7iF!%Cb1S85ng`gw3+iRD-QRacGduW z$GsY$KI)&HWX1m8q&|73i z)zIuGJ>w962{$&?);{>|oh^1J3E}Qq7k>M~a>B*r;9n;f=nWg>cjx>+Y*2aBBm~dD zct4LC$HiVWqVi^E>KRc6i@y2!+oSTyAKwKwN9tXvgpf{X7UPY0>Y7s5G+v}(qziSW zQ@w0Y3)jNAT=L3VE;kLxr2$+ZgNO!9j-k`GES1%D*nK{K2VM^k3c0(^=Az$c9#nT1 z(%Iu%mc6NF2pRR_*EL#n>8Frba5;EEF28=a-+0^YE7KLh>=a=+=8{V_&i}@Ccn;$y zrU=srWip+Ire>OY9 zjZ#1QZZ^mBW~XQ`RKZan{AwxH+=c#A$MI(wo_!wV*y`R=zDD^^+Y;S_)v0-B7wdp~ zV?HJ*PHp`4z95oBvFd$x>$@;AcMS^`Ry3CU~?)U~>JedFrb1qa{2>uh&==$r+; zi3`FoY~;06aMGlF7DMz0+88MAQYs4ilA+#3a?11??wV@zqg$bw0lDZ$&I=Oz7!fQE zb9~9Z1$N~{F(Af-$8%rTyP;Q)fa7H^HP>6b-*n}g=z=4e$Zs26jjkej@5CE6&DYn+ z-QwhhWdQ2P_Z&LXanE7}9Wc*L@B2*X&Egvfk>F*yPkqitDeue=LZi27G^n*i50a)4 zaESO0i}%|l2zx_XN4M2$EjH_UKjQ95e(RWvw6iwq?*b95Dl%m`n17#oo(j6xckKccCAe zx+bbmdUyx7hS7L^Yzc%PBvLmtzQ>?srGpI;AreF!&af>yl_M`f;cT$%-9<{;LakK< z?@hk|CWM56o=P~(JDECsKC8tLOH?PzcbC!c5D6x}ZC92P{bP&MzX9pBuChi}F9R|Y zE~Pu2atoH`;TT^DPrF+-G*qLL$klp|^nsp<@(hIY-t=KnPAs3uY^;DcXk?a@`S-6RV#n27r(8Uc(4%h9wupsM=i9OKPM-E{Oce zU&$9o5ESF+MVkN(CAUP!2ge76Vq`7z0o|v+FBnbzD1B!P+tKN z5?m7_`P0Y7H}aRs7SXschF zn$=JU_4rzKfT7FVbou5T0Uh<+nQF=)57bJ2`jEgBDk-^^omS{3>U$89!FiQw45 zn5#2@hx3W_8~L&V6h;96(|qXJiU|Neipc~hbKzFAV$~DDM1P6}Lv$}u2RO(C;1O6n zBlp^A_zw}LUZe|T(*pRExbIVlS>`%h2NA%O=>Vrj8p>F~+b4MT1obD~77J#cYDNJP zaR{ydu<;JymT>ZoZaaGd-QNO%1fF;j(^Hco0P|KJbxAVD1Zu_uBHWabw$%%sxYmUC-mPk zsd=!g!f~1(7TBo<$25ZIG9YbUN12VQiv3Uh?7)$4eGBlZ4*K*nZ5(;)CrN$I3XYy6 zRRa?E7)_e=z~JsYMLh_9?L2#;>v&&)gd{w1@QKxCJW0AWp49myspM0FVNpHhNmA}7 zNri7Fyq+Xw021gS22A*Xr0!2UScaU*4I5B1I&i?@%Yi6bJvBMrO#rF^98}a}y-CwZ}Ovl+@Sz=j(@r-#VwgBu(2`ib9 z+mYL)1s0Y><7#T5a+*323N$RNN`_8sIs0EAEfW_&Ql&)a>zpFTuOJ5vGZTv~ZY7c- z82aBTjoLhgzo?XO?I$h&7gpm;U^U<^xM9dp@I!&&9s+XNuK$RFwis9Fzp)$74I$!) zB&9Z@TU?`GY&+^q>wLJeS8jgt+3Pph6+HZks13a!ao?Q^2QVbyvU~OUoA5QL{p1Ik zzPaOKa}Bk|#|Aid-xubejX<1%e&`U~rbWKlg+xpqaJ$6@5x}A%WAhoVLEgA*L_dMJ zvQjOO$LR+s4PAFyRkhq?c6A%u1GifoJDbjj(bH0cF&~B)r5}o+0MR;3Er$S!_ zh$YOY{VJ@kI5i@=>JNl#LR+i1(M!nuR=LtWa@ZM&?QkDZByY8=jFp>PcM5ZI2L=ae zrcgUP06WpB;6r=_*ND)O@O+~qSpyL9!r?N`_GkTOpZA0WEHWWs2O&cq`6Rfy|B&NH z#_KRP8$Oa8`_29x4yZ^SftaJGmS^a)IIg$eL|OMuzsBU-p2W&Ay)=kUxvm6&$*6;E zx5sjPIS*R*D!DNo1lPK|gpS(dMu3>k7vz-huY9OSRL}x|19gMw4885PSEk>EUWGrT zQ0!(qZwHW{#&FI|7+^~16-N$FT%g2uvT(fPa=Ak~xbsbs?c~=Q zT}cQgv0d)*F9>+8Ajvp){i~SqO3+7LU(xkQ?(IKus=xnOCIuzQ0h59!JXeM9TkT|T zz*_k02@O>dt9%KD>zZPaEgtlF$vH3t+;jV#A1~&t&yIVs)A;#RHwF{JU-_{_ivTRw zX}~>M`SbSCCu~u9laD7M*1po>Xm@K7?5P**291$yomb`=)>Fmr&Hw`!wc|PXUDx$y zngkt1BT_g4iZJjrI7j$_6`cqn z9%A1CvCfkdSJ@Ju&R+8=?xbV+1@>VjAcM{hnpO${q#d4T+Z~9=18^O`qrQGR^-RF8 zw8s_LzxF-iQ@)mb(KandAf3J9bUE)8FpS$kh}$&p7(lFBdl0_yJLCkt&e!93PeA(O`ZfUc2?cadD^Co)+9}Gy14S)8oub7|sOR8rBy{#|)|oy(V!i`Gmlaw_ z7q3M?s9ErpfX9vz&pE3kTUcn{7M&pu!Mt-BWjb^{9-)O5%uRxgi6>$gR&1}RT7wT>Ca}HwS;n||_C{8tlY~W>EJYh}h#zUfAA{>75 zYQ*a&_ux(D<8Y=(n)npN^ETsNPWUHjDQ->pGt#xS5P*Xat4oWE5Fj>)l*ai(O42dvbZ6Dk+dUb#cfYo z5gD)S4R~pg>|($7&1HJ6_|4>}y|GUWSC=MG%en_JR#5Cgy!%UW{$0_Hcnzd4?FTmN zI&=l=0u=KONl_4)V8r+>cmLbKzwws#H#wr09`95>#!r#+XHW8JG1hWl$Inw|6U`~5 zAH4fksZiuz*NPq1w5KLbqTczt~fFGW`>aq|~(rEM{dc!6o(-zNdRY|J!GaXAi6&VVC1cdB+T&nO;g?DV1dMmljh%M?8gj7`Me*# zBtm-65ffy;K~kU@cx!+kCf_mm-7}>r(#L`1=yQ@*3i$Y=kD_;p!_ZA*(9; zzl;O((HJMp8eA3Lp}7=n>T`yH9X9!zG?|$C@?yZ78IzPOb`r5vwi1}v`wz_A>?l5h zEYHmm5f7}1E3xu5v`JfyoG`x{J~Mg8`!G9q{}sx)6*qacP$NXtDk37+a4GU7w~}CkfK(Ciu1m;UqzFVHYKAI%9$Sdg&Oq|~ zwt5~fGh>A@q&3Acic(}g2Ic3o0~bMqzm}42i3jnSEzjGqx3g+R$DqR}AD=>6m4qDd z`N^m%(@u}4{i(CDtOjuCdT1!-?JuY4Robwuy6nS}he8D?@!2W|=~ME4X_dS}N;38> zQMepp@7m^Xd!&JrHuq^f2lYijzQ2`V^nmR=!ge5Y`RKmX4qj5{NyL!ZQ={d#!AjPfhE&?^fP8?eAP>iB{W?9 z$_p^+1jQcAXi=*Bb`&FsSZQQ7H}^5Noom41y>`-}_F#NfPFfsx3a7XDm2QNKjq25- z(qSPG&Q1=$V8_w}aefE95J<9cP&$o33^of=^%wywJa+vUtf8@oWh7Eqg?U<6r))~q@pf4D520c*p z+U;PDy@yHMUvIzVmAVT~XfCRYyvW{iB#h$J-dNQ5&1UasHj5_PVUMNK4ZvxCrrUklP!JMih(B8 zJ+Q!7*!&tTQ!%Z4TVXb>UA3zS3fK681AX$=M+Z0D>n6XeSc+ttIs=)#)poL*6D%)r zGPEMa$~7@GW@9dQCT=`3aE+D83xc&ZOo#O&SN9kI)e?z&LVvI1<5cXaIxI9_KX#7c zj?@nC?0sdXG9`g#@y){p*wpNMr)$p?tc+p@*{``-E!TdzzI~*<#9i_$$Kp*gs&R9_ z^~NaQA1DL93(WB5W;cY0%K+y?T_2QkQ=Vt{bElg>IC|vB!9ff=vGvFiv^G*YIQNbs zo=LGQ5Ow1+XWGS3eAZ^#hw2<_1G=XzI`^AGB`5Qy9a|*7A8Ybxmi*4^(yT-FTl0AQ zJ-Qp!yL(-peNUfn2bx&SHrX^i3M|k@aiQZHWk2T&NoX21F=?C_vn)0=CN zf`n?GL$GglDE_h;DaR|wBxF_>hGm1>eDK1j3Uro@d=HuF(VJ|3yU(mfCIZb7M*uey(gQxN`S&$BLa}uu7_l3eO zav}_`N5n*oHPNJ8oTN%}{Duh87cXf^60VSl(sqFEH-zB56(jUTI%Pb;&-K`rHhbq2g1G{ zM9!?uxn5GVb~#se*lR@%H0%qeZ8lli%zr^_E3-Qh`jQ9$i{1w|^h>SME48*gY1A<~ zWc-})$&b8g1tGig)q}f|JkpyZFJ+{j`GVDe25}kGn1%_(B@MMj2RA_h6$hZ3-b*#d zMP7kEf3ZnsXI5x1dl8n801!(q{*rYtUTKx}y^#v)9Wyc-$B&&nduDy;`GWsyhU7?T zPWgJD39M@-P{V;b*zT^>U2A?~({kTjHw8jO(mevJ5~ZHQH}g%X89?0;D*ScRBwCS~ z%E)_7(|sx(L)|8U|MN!WCcvT@Vu=fxzuTW^Wu-mg~xvOoE+VCFedXsqz z6+6tUQ(%@ju4iAQ8Qu@zzB=doyzXn6s}z+0n|qvUPK*~B*kq(v1F{k(ygU7x|G^vR z#`zRk`U|S@w8cH9VJ`#-q+OlhkT5W2+J`>MxKxOQG6cjXZ>pE5?@C`olH|=TVA!vJa7T0>0 z0bt~A-dL!>=el0@-S8xbQfn^-o)e9%wgp!MbeRVJ8eb&X(`06fsL1&z@w|B&?i*Ft z45LEkv#F*%7=0uqQ6FJDDt4OA`10c?@Cizl3#uZ`j8PZV5*fW?;KO+9QbzB?*ZpW- z^zTDhAk6)AYwf40zWW}lj`Sh9t`Mq-%BUC%{(_h4F`jfxec+jW?!wNA4`O%IF8tZ} zjnRvJ)fPaYuuc9`2WBakf3(l|)DI+2wwxNaOChTF0&@JMCBQ7KP9HM^G^8e5)Kq1Z z3WM+P7L4E;n1$>=qBuAbp3H+ZMg{apqeX;WQ#vQA8Lw@ah9n zSxb~ZPqzw+Tan>uI%&^T7y{PiG7LU<2F`YP*RelSC{a#1S@Mv5Ge;fDNAnh|QC~E< z{nxo@l;BQFJTN3RYu!evfAiTJ44eq$OULBS2)10`&{xSRxxV%1Z4I={R@OKQb*gs; zPinnzaj#hG(qq=lYn~|)93WMYvf?GBAGl(?XC|(*;uV^n887Yer0{Wb8+Wen)Jx8> z6jn&Pbt81NwY$n9lvnQr9Ho)qoXxADA=k;H2OHChKVE~vgBi5-3bx`ww|)(x>1poE z`|Bl@#67{>CjoOxqK$&MT8t55Z~D!(PTGueSocJT9g{Eb-1v2ac$_Lg<4`Z`2zfhl z`jmYVvKSv9#J^OLa|#esn6%XxkxZ-aeh2gAYZ)8E#W|^ ze^k2-5Z^NwmV4sy#!K(o0wD4Twg^*MRf$Yl!)X}v~v`pQD&#EE9q&Nphps^%cFrpl^ z;te2Dizrab){Ez7oepZkX@Gv_c= zMW41vcK+dFhu*@O+PE&>M9GSoHwT#FmZeh#*&0|>HkO7wi^O_8FK@W2I9=zN6K8>$ zcB){gT9G#IEM3tLGW79aiKy`*&xyt;*310<%A4op0~KcI{nq@%SMl@?-zMT%BYqke z>FOvHcFbNzdm1`AQXK za~ux)psB(C?mmtF1=;GCPm%>p!&;M1UMFlNNm7T1`a~+JBNFBJT%SM*R zLf>njI1wzcZ_l9LvIUFt$#T!N%txAhek)#O7j=0i+LlaKTo(Ima|2+&h&)^8aNR0Z zS*z>o)FL|#>#1HK=ZD8;n)SNVbl3Hm%oE&f9EX|@X2`i0es`mZSGFEryzoWO4 zgd8)nbH6|Iz0>(#l+KD0S?3COQJ(^(9hP~D>z*$}UgTkQ3A#;M_7xYxe4Gtd{;3a+ z;{65;53p8eC+n4yHkEKu)4c_h!u!@kL(d6oH3V9Fi=I*4dQ_K;H7M;aUe=cWGc!$b zLOf0rn~W+O_o=VVx7SK+a^#>8+u>(|K{{tJu2f5Eq@feAo|jr2MRW%WCj&s2wf<7!Lngj!b=-jP|5if4jidCO;)Q;_Z z%PwOf(p>PtV3wFPY052O+)mFdEV8_4ByyW<$ufJa<=wUZjL&+G4ENC=sp_6v&@XDN7N;Fgjy+(L@a=50iRUbB^Ur6KjzVqy(aOO>>aU zR@GbTnvN00#r>zgFAJZ(KTA$$bq5xHYHL&1D~TgOtX{lGP~q=VsZtJJSVIU~OwcLQ z@Q9+<7g*yg^c=72o{6e&D!h3H7Ga{q`KGpA_eZrsd<2W=w-l%(A1-mW%+N zk_A^O_}XWYKoL~AJAo!a#bX`}C)p82SaxoySP2npH_g<^UJi4$( ze@7>#EN$h1%fTbA+Ao2yUu7E$Q7|Xy9-AsmNX!qLabd_>nJ8 zxYANf(0FUP9qqf_o;q#5-&1I3WkW+W1 z8&*C9x}Ml=y4*M%FH}v4x_*WJg`1P)>c8I~hx9hf#N73N+)?_YZR>Z{L?^Z69LeYb z?A501+6Ba}So>S=niE)1!+~ukPzV0EhtziE$=zfMYih20C*bvM?rE_h8UAb9*CW$r z@DEN>O)ki~>8-AEBNz1g-p2q)D5Twi>`;?5+XA_e^UrEUU<&2K5ZKA@q;-ZP7q^_& zP639X_2UQlqD57hNQXccsvMc4NCWqHpf!F!EfM5`lhA32Jcle3o~6h0%SH*gIFH|k zV@3hn#KN<($aI?zFTzmsU}AP*I_!lStvg_Z@zN%c)FSn|tXlT-hYI(if5;HV#(WBn zJS%8;{%SxI0a0NsNPCyz-6Gz9DL~%+*AWQBu__HM z1aMg$hZVx?Uk3INa=k!sMqZ325{%RG&|g+h{zLF~0)UYH5kd1qg!cnFFBX`BG!!g% z6hg&zq|tH@>I7=cqOLO|24R?(9G`B3rl711du8=$TP$6ijzz*RSX@Q3i{{RoeW?LX z|LnoPen=+HxD9)6T!IAd70`g9cbg5Z-Un3Es|fz?D;+Z3^Xol&QkoV?lJ@}-1%ltW zP}``(X%0TI*kWP?o49cDlLkINKF^72B()c=++EItR6edzcg>~6tWl`sI0BDu^veex zr$TaU1Vn@nn_~>B;cO6{*Ot06n_H8qHPAGpqu7A-WRhcrfBPORPSxPiW`UzT*!BVE z1@${tmTL|_L`mhoWWE5gsN!K2u~6*+2w4q!p58qh0y)d^Fu{Ubn}8;2eD_yU{Y7bn zOaFbyn=NSU3UjOvMj+uC2#GZdElZ1l03Na`Wmai-r$k5H;Zy%56r`Kqx%KhQ0(c_- z5^nyTaE$F0ctg((-5TvoOf{wcZ{yjE^s4cf&K*A^acSgE-ix)MBducncFasZkaQj* zUWU68=jPuY0@3gDr2>sqdk7q;I;fd|+VNyPOD|7LP4Y5MI; z45||QeGm4=JxU(?X7#QI({Z=0G=J~q#6wU#^rvW^RVP@c@DZ~Al4mXzpT{#9RzWoR z5WA}NJZKx@*t}}$DQ7nd+h{azR0`R8l*CxDT`{wylG7Aw-_qe2n64eGsx>L!Cy#_i zQ;G({Xe0I1_GEJ`bM^{9ze7TCh89Wh3wRdrLcB;t| zm;Vw@&qM8Cc^R`GPxE%dD@YI(QpdmE|5y#VEK7ImAL1jBQp1WdO!`=t?HdMUSOY`a zCA^*UWy0RalZ9J=`-sx3&r&@8-tJ!blfkK%A|=F_g>mWoB1@Lq+R|UQ)Im}yohsnX zcHPru6M&DI(PGw9Aq%Kh&@MSp9;O|zFYe`4G8Elq!D)NyJ~Bn~~gI ztoi5~acME&N87psT`CKS2LS#LFC1X+yUe$cpXizM?QfzJ2vu8S&b|OrBj-c=9li^t zpwY*hTc;fLWn}cI(97=D6b!=^1{B-%|EQOdI+@Y8>M|jk?x_OdccrF2Ekf>SnH5#H zIq1BT$1{Ln^RkteupN(suVKXHZ|58e>Us0$V8Y1Ato1~+Hk1SG%D11v5OIo5kfc}r zt6nml>lK7_brim8m~U>`awz)jhB!Q_%5_cL&ohDXH$McWQJ-012@qtceAUls@-)@o z@pf^EB|mS;73N)`i+Of; z;`ECA=<+mIt39;?D6=88aR7f*Q0t?mo72+* zaD>^BdA+(B$EWq9j)mcQs`5^D6b$O7tM%0Lv5yQ-2{l|H-r;>P2`daoHh<$!mSAO_ zv)6{7FO+Xy`Jsoc7?dUu3u-$Fcpb76(dH^unM$|lyam;ja)sFhfZ%#OO`1sV@cqr~6vb@q>myULt-<+YMywY`1{@+MnrSE~ne%Ews%F#(j z^_wvz#rYpRGDl8(h9wol+V;GFxr2@Sjc;-{Eb3?CbZs*JX^ha~m%5l>C4({LEESn1*N~_JVLHFk+Amrg)hKia z56AwWYXhZ6C!@6k;72n1%xOhhQS)7`_YP(ZohobD3eq zT6*GbG+A_cF4;T+J(@6-iUwm8tM#sR9KK$vDz7Rci@g@tjGT!~)*8#f`oA2OM{l>= zUC0+kEpPhNv~B+x&&Jw^75RcN%hK^qRWM^`qw>H2Bdw_Yn^bIZTqNNH5R7)ZQL?hj z-r(4@?gJxyve0SSZjZ^=16XRA3m)C)muk9r(1z{X--Nv`P^O&dj+uFbSEcUz;Q|FqvQeB*YM$;wSLUThp|@6Zi8n+o*&0}Z~Nj#;j>|%1MM(P&*9S0 z(XGC3YOiNNY$0q!u-RlRc05o|pVKom$}RE2t;Nh3iB(4GAwWH0#!sF&DFL3XJDZ{1I0mlOtkC)xc@%1og?DmB8r%^u)YmPZiCGcP@>T!cTJy zs4wHs-W4vhv5`s_;@PB(28=y+b$aaBw?E&`d3Be&$EUqE6db~s52vQS6It5# zx)ajpy)lTnBEC*6uGrVGf2(xSjb&XiGEvm6Zy&ru-tgg;8Xf0@vFSb9sFDs$3+ka6dH2Tmm|<4ldgBABWzHul7#1du z)QR|Tja%gHsYdxLOA~wJQgh=pca$tTMiN}mCTP35~L0&pIX55zf3jg^9P(f0P_u5p@ zM7vm@sZc7$HL%9n{s*R9 zNA|OQuE+~yXT>ZUM<=-F6|rbeC=l+}hsl`<=}#-1!OBu5op^v-@2R!{0{7O6$C4c4 zG#`%Fva1bhmDe+*4SN?=)Ozpqb3#afK~w82d26@&^@*PCndw%c1iH8s5&M28^h}aH zuBPtI1iP6=zGrr_edAi|vUR@{vay#5`}CZ=`C9PzqdND#vKL95I%BybsDE_?i=gKd zI;Oz^95R1`qBOVD1$gg0FdKc6(z{gC%krorNl@`r>$TQ&xl)ezemqGh>N9QlN&=~K zSVZ(C7Rpxc7H>MuCcsbwUr7bkyBe+qh`eEwTa%1 zy~ZKI0uR@LZA#JDk>Z`fz7P@9H|^o5s5~{9$KQPGDK7jt$$Ba6*x#U6?lOYBEq3QP zy7ZqmzdruzrK zYlof9w8a*EZ{W|W)iG4XnUjlfgf@$=Oqy*?afsBsIq4c+kf0kTRIHuc)l`ts)Us>> zOea$9Xf-1JbD{N}7gn!I_4;QnNFo}@MXC!Xt2e#EC7rDMRmM4g6$-pxLGe*8gWEqt>Dw*o;%Za% zZZG*4oe6yxmHV&rkx_)WFvlYYj$?vcwV~FAn_iORv+cM^B_HOC{_5YVJQ)X!?MIWI z*ota5agc=Kk_3m~4mm04!FOY1v2s`^Tc{aK8BaCSP3 z$!JfviZT`L9r?ce88iKP@cxt{<3l2Qy)iQQwx|!m7 zxAHBEzn@gz51~Ao+Q@73tSmoGmQHD{H0XT_+ys(TDle0n(30R|x|UtsXX8xggf-Vo z5A$-9ncXSkky!U*DvpHOODp>amdkjKx4l7@W6vYHTT?ETjl8*>(9G0busCUvTt4#m z9oqy$iQ;Z-6q2UYY<5)BN0SLo*B-F@E(j~_?nkkmvOk}brEd|}jmoh!o9Zie0063_ z&%u1vB%guol5<9_qKVYA`7^#0Ssl8?9%>pCYfGDnn~vjLVji}We`D?IB^+q#d&YXm zyGD4=0yXO?;h?|9DQ&Vo zQrKnm@C|A%kwcwTW)c;4%#Fn_dbkQHh5e+G z$3`%;i&4vONB7OO3yvxFfTq?~)<@@8d>4>(mn_K%XPN9;G6*72Q|lOUBA&okA{v8xuKXgZ?jaW7Kl$iK2Xf*p8Yk z|EV_#JY_)%C%xXaf@2TJd14h2PG}!!puLxhzstdA%Yy~uC?Z$iccL5awMfdg^5J2m z|6gRv^z?K!&>eJtfjg)^E=BJrb`u65A>gd6k5><5vo!!M*vK~kQyd4sOLp3)0y$%_ z=$iaWyFvHk?zK5a(8V47=={WPBR@08jA$LnP>2IL^%eNaew_KA>`BPL9eO`&49pCF zTLIAOH9`dG2k4z*IzAsJMFVO=cswtH>lT5*2|$>FN(-?5%71s8wf6~TOk9{Z9((>|t0`gBp=Kkk223J4P}y@*&J zWTfUrrb#akfUr&d3d3TsIs+<$z*aS_$siQI)lhJF(J~vj{J!+~=W8c0Mh8KnoNK7Z zOcDklpr59Q$b6ZoqPF#10Sdh8Xr`?Kt9lkAIiBtUYVK5I;1@EBA5oCwoU2`oRe&=0^s`@V=I^%FL?oGpeqm*HdAvm%NJhjc(e75n zP1-I6Q;qylPuOif0dy|^E;h-o;5MUD8yHfztfms9-byG$C@%m_6^SDGL#HnmVVLW8<( zaqX5ecU$a;P0USU2gTwWNGrmgW@IdWwKsVd-BK`mME_^kwGGi)y#DQK;s)jXyB}pk zc<~ipUCT{c)j!DwBfks3J7jo-ZD;ipjb==m90pP$ht zkhTR+@kW--7DQ9%3_BEaq33z=h$7zuaK^0b$pmh)p3%ahjyO&nTo6Wx%o zIyLZpVYHWBkpAv6#YGUhqe{i~3;aU^)b0~h_tS0p;Fhb-vjWYk5dn=o1~{n1ck6#6 zU&E^71eqOCihD7`i`#iKyx|U+2r#!ZaE=d zpE|l@KCk>ciM20*6_ECxvHV##_CJ@yhk_a?gG|i5O$)cvx^Ru?q*yl|yGRCx*4DszqL&UE2r zyq0WD5qMR+uZ8QyNhE{w?x>6*nFQcHi){U6I58y01WE$@_`Xpt0s;0~%gelks1$3ctL2k1W}Fm&JD6YGGt(4dUF}>-B=e5+jukt zL^eV=s+$hufUzxj=A`h0w6 zIZ*tc;_Ov7_c$7b3pQzLIw&g^!r3iuQV1k0jYUaCUSIF=*KCE8N(TS+xx;t#$-VsQ zNzFi8I1>F=5Pfpt^UNYyHs{>&DD9}YrJNH~9XE{Cbd=aP6D%e^b8vT2UYGBWmkKv} z2Bjou+MlN0CchI9COvNA3}SvGwZ&^o5+QSZ1**nGDk=KYzPWC3zt62l8D70lq`;Q= z^(=&TON@sCh z-^XVc4vtZ69KBoBDg_fZ-MJ40IV*OEY4*5O%$y=mWU^!tpcU(}(Q@<yGY@dm^aEN4z4s^}J5P+4dyC4UvXLaPgI_9M!r4?Cyj>ql#g{xX zqz=VAO|nbUK{V{Ak@_0^r%avPq0%A=tWITX$RAxik*s^HxsUy-%|rdhBFEv1_fIEV zvZ=$R4rNv~wGr5ysdsJG1aVFDp6jzZtr5o6w$*)~{2SHXR_byqgz+Q(YTgc+>PQfD znMizSW+1ggJZoXTym`D>x8w`>TDrFEEvIq;0#>&_(Y4WScXNqEfTiRnSg20#ii~E5 ze)>;qJe0do)H4eEeB?Zt4=Jj|p9*VF_W)hNTUMODox!ZHfVmrf_PSJ|H=6n}XXDxZR7Lpni*wbD=gxo!WEtQ#8T%JUh<4x%e}uY|K-6N`MD zCW25Jh;NQd|G8DC84@MR`})7HuAcZvZ=%@!OB`J=oAhhj8)vh}oO7nmzAN2$EO9XL z*S1ic@czK3$cHf*F$KM{VU}5k>9>#~CsU;YS@|XSgL768=?|^NDj4Cl+OAs6mAK(z z4_Dp6DTx8BTw-40BJ;H$UmDTBB0-`=AXf2>fUCGF;04XxP7@x4xIk(yp;1Bb4jq@Z8Wz?V_683R!1c&$f4?t?Q=H ziKnwAOCuY;aev1P5AD7Y=Zrs0&*Vu|u9?>RXx)-rclOw+NbXer?jw74l1i9VTUAws zDm!+`)Ydd{(37$c@ecdh(8?X5^0ED3rHB4nyJc3Hs)k!GE^?D72Acj)eF$^cv!mL{ zAzz2Ly_e0SvIQd^Z)BT{{YP~_O-8NI8j?dyx|Nvr#BRrDX2bieKt4jSDZSyEh=EC z*JmdCJ;Gn*6V>DV>=3~z;(AzY(RMHW&o74~r1QKn>8+$jtY z?gU%Q7nYtt%AC&F5}vy^kXe*@`-t=TKlUrHa4|pO(YCIZGwS2cd``w%mRfczkvP(1 z%mqCTds@MLU*+w?z;|*R-@Fy(!Da32(J$@S+-T{#lRbAJdvv}3&TVJa!#~|~Tk) +# Data Source Authorization in Apache Zeppelin + +

      + +## Overview + +Data source authorization involves authenticating to the data source like a Mysql database and letting it determine user permissions. +Apache Zeppelin allows users to use their own credentials to authenticate with **Data Sources**. + +For example, let's assume you have an account in the Vertica databases with credentials. +You might want to use this account to create a JDBC connection instead of a shared account with all users. +In this case, you can add your credential information to Zeppelin and use them with below simple steps. + +## How to save credential information? +You can add new credentials in the dropdown menu for your data source which can be passed to interpreters. + + + +**Entity** can be the key that distiguishes each credential sets. Type **Username & Password** for your own credentials. ex) user & password of Mysql + + + +The credentials saved as per users defined in `conf/shiro.ini`. All credential informtation can be found in `conf/credentials.json`. + +#### JDBC interpreter +You need to maintain per-user connection pools. +The interpret method takes the user string as parameter and executes the jdbc call using a connection in the user's connection pool. + +#### Presto +You don't need password if the Presto DB server runs backend code using HDFS authorization for the user. + +#### Vertica and Mysql +You have to store password information for users. + +## Please note +As a first step of data source authentication feature, [ZEPPELIN-828](https://issues.apache.org/jira/browse/ZEPPELIN-828) was proposed and implemented in Pull Request [#860](https://github.com/apache/zeppelin/pull/860). +Currently, customized 3rd party interpreters can use this feature. We are planning to apply this mechanism to [the community interpreters](../manual/interpreterinstallation.md#available-community-managed-interpreters) in the near future. +Please keep track [ZEPPELIN-1070](https://issues.apache.org/jira/browse/ZEPPELIN-1070). From c100a6447b22ebc2840c14a28259029ea0f991f9 Mon Sep 17 00:00:00 2001 From: AhyoungRyu Date: Tue, 28 Jun 2016 01:03:55 -0700 Subject: [PATCH 05/11] Delete interpreter_authorization.md --- docs/security/interpreter_authorization.md | 38 ---------------------- 1 file changed, 38 deletions(-) delete mode 100644 docs/security/interpreter_authorization.md diff --git a/docs/security/interpreter_authorization.md b/docs/security/interpreter_authorization.md deleted file mode 100644 index 6e59e0718a9..00000000000 --- a/docs/security/interpreter_authorization.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -layout: page -title: "Notebook Authorization" -description: "Notebook Authorization" -group: security ---- - -# Interpreter and Data Source Authorization - -
      - -## Interpreter Authorization - -Interpreter authorization involves permissions like creating an interpreter and execution queries using it. - -## Data Source Authorization - -Data source authorization involves authenticating to the data source like a Mysql database and letting it determine user permissions. - -For the JDBC interpreter, we need to maintain per-user connection pools. -The interpret method takes the user string as parameter and executes the jdbc call using a connection in the user's connection pool. - -In case of Presto, we don't need password if the Presto DB server runs backend code using HDFS authorization for the user. -For databases like Vertica and Mysql we have to store password information for users. - -The Credentials tab in the navbar allows users to save credentials for data sources which are passed to interpreters. From cc72ae8bfa8a8f17ddb02fddb1761335ec01a26f Mon Sep 17 00:00:00 2001 From: AhyoungRyu Date: Tue, 28 Jun 2016 19:38:56 -0700 Subject: [PATCH 06/11] update xeditable license version --- zeppelin-distribution/src/bin_license/LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zeppelin-distribution/src/bin_license/LICENSE b/zeppelin-distribution/src/bin_license/LICENSE index 292b8d38b9b..d7cc1ccd60d 100644 --- a/zeppelin-distribution/src/bin_license/LICENSE +++ b/zeppelin-distribution/src/bin_license/LICENSE @@ -124,7 +124,7 @@ The text of each license is also included at licenses/LICENSE-[project]-[version (The MIT License) angular-elastic v2.4.2 (https://github.com/monospaced/angular-elastic) - https://github.com/monospaced/angular-elastic/blob/v2.4.2/LICENCE.txt (The MIT License) angular-elastic-input v2.2.0 (https://github.com/jacek-pulit/angular-elastic-input) - https://github.com/jacek-pulit/angular-elastic-input/blob/v2.2.0/LICENSE (The MIT License) ng-focus-if v1.0.2 (https://github.com/hiebj/ng-focus-if) - https://github.com/hiebj/ng-focus-if/blob/v1.0.2/LICENSE - (The MIT License) angular-xeditable v0.1.8 (http://vitalets.github.io/angular-xeditable/) - https://github.com/vitalets/angular-xeditable/tree/0.1.8 + (The MIT License) angular-xeditable v0.1.12 (http://vitalets.github.io/angular-xeditable/) - https://github.com/vitalets/angular-xeditable/tree/0.1.12 (The MIT License) lodash v3.9.3 (https://lodash.com/) - https://github.com/lodash/lodash/blob/3.9.3/LICENSE.txt (The MIT License) angular-filter v0.5.4 (https://github.com/a8m/angular-filter) - https://github.com/a8m/angular-filter/blob/v0.5.4/license.md (The MIT License) ngToast v2.0.0 (http://tamerayd.in/ngToast/) - http://tameraydin.mit-license.org/ From cea8c9375fb639644349101fe61d19bd75da22af Mon Sep 17 00:00:00 2001 From: AhyoungRyu Date: Tue, 28 Jun 2016 19:56:50 -0700 Subject: [PATCH 07/11] Fix typos in datasource_authorization.md --- docs/security/datasource_authorization.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/docs/security/datasource_authorization.md b/docs/security/datasource_authorization.md index 54b3b769270..3f86b8ab00d 100644 --- a/docs/security/datasource_authorization.md +++ b/docs/security/datasource_authorization.md @@ -27,31 +27,33 @@ Data source authorization involves authenticating to the data source like a Mysq Apache Zeppelin allows users to use their own credentials to authenticate with **Data Sources**. For example, let's assume you have an account in the Vertica databases with credentials. -You might want to use this account to create a JDBC connection instead of a shared account with all users. -In this case, you can add your credential information to Zeppelin and use them with below simple steps. +You might want to use this account to create a JDBC connection instead of a shared account with all users who are defined in `conf/shiro.ini`. +In this case, you can add your credential information to Apache Zeppelin and use them with below simple steps. -## How to save credential information? +## How to save the credential information? You can add new credentials in the dropdown menu for your data source which can be passed to interpreters. -**Entity** can be the key that distiguishes each credential sets. Type **Username & Password** for your own credentials. ex) user & password of Mysql +**Entity** can be the key that distinguishes each credential sets. Type **Username & Password** for your own credentials. ex) user & password of Mysql -The credentials saved as per users defined in `conf/shiro.ini`. All credential informtation can be found in `conf/credentials.json`. +The credentials saved as per users defined in `conf/shiro.ini`. +If you didn't activate [shiro authentication in Apache Zeppelin](./shiroauthentication.html), your credential information will be saved as `anonymous`. +All credential information also can be found in `conf/credentials.json`. #### JDBC interpreter You need to maintain per-user connection pools. -The interpret method takes the user string as parameter and executes the jdbc call using a connection in the user's connection pool. +The interpret method takes the user string as a parameter and executes the jdbc call using a connection in the user's connection pool. #### Presto -You don't need password if the Presto DB server runs backend code using HDFS authorization for the user. +You don't need a password if the Presto DB server runs backend code using HDFS authorization for the user. #### Vertica and Mysql -You have to store password information for users. +You have to store the password information for users. ## Please note As a first step of data source authentication feature, [ZEPPELIN-828](https://issues.apache.org/jira/browse/ZEPPELIN-828) was proposed and implemented in Pull Request [#860](https://github.com/apache/zeppelin/pull/860). -Currently, customized 3rd party interpreters can use this feature. We are planning to apply this mechanism to [the community interpreters](../manual/interpreterinstallation.md#available-community-managed-interpreters) in the near future. +Currently, only customized 3rd party interpreters can use this feature. We are planning to apply this mechanism to [the community interpreters](../manual/interpreterinstallation.md#available-community-managed-interpreters) in the near future. Please keep track [ZEPPELIN-1070](https://issues.apache.org/jira/browse/ZEPPELIN-1070). From 57cb28098e7c4af6e942acad0bf27439c9abd594 Mon Sep 17 00:00:00 2001 From: AhyoungRyu Date: Tue, 5 Jul 2016 18:32:14 +0900 Subject: [PATCH 08/11] Make focusing to text inputbox after update cancel --- .../app/credential/credential.controller.js | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/zeppelin-web/src/app/credential/credential.controller.js b/zeppelin-web/src/app/credential/credential.controller.js index 1fd8d57bf3b..7142dcae890 100644 --- a/zeppelin-web/src/app/credential/credential.controller.js +++ b/zeppelin-web/src/app/credential/credential.controller.js @@ -17,14 +17,14 @@ angular.module('zeppelinWebApp').controller('CredentialCtrl', function($scope, $route, $routeParams, $location, $rootScope, $http, baseUrlSrv, ngToast) { $scope._ = _; - + $scope.credentialInfo = []; $scope.showAddNewCredentialInfo = false; - + var getCredentialInfo = function() { $http.get(baseUrlSrv.getRestApiBase()+'/credential'). success(function(data, status, headers, config) { - + $scope.credentialInfo = _.map(data.body.userCredentials, function(value, prop) { return {entity: prop, password: value.password, username: value.username }; }); @@ -34,7 +34,7 @@ angular.module('zeppelinWebApp').controller('CredentialCtrl', function($scope, $ console.log('Error %o %o', status, data.message); }); }; - + $scope.addNewCredentialInfo = function() { if ($scope.entity && _.isEmpty($scope.entity.trim()) && $scope.username && _.isEmpty($scope.username.trim())) { @@ -45,13 +45,13 @@ angular.module('zeppelinWebApp').controller('CredentialCtrl', function($scope, $ }); return; } - + var newCredential = { 'entity': $scope.entity, 'username': $scope.username, 'password': $scope.password }; - + $http.put(baseUrlSrv.getRestApiBase() + '/credential', newCredential). success(function(data, status, headers, config) { ngToast.success({ @@ -73,18 +73,18 @@ angular.module('zeppelinWebApp').controller('CredentialCtrl', function($scope, $ console.log('Error %o %o', status, data.message); }); }; - + $scope.cancelCredentialInfo = function() { $scope.showAddNewCredentialInfo = false; resetCredentialInfo(); }; - + var resetCredentialInfo = function() { $scope.entity = ''; $scope.username = ''; $scope.password = ''; }; - + $scope.copyOriginCredentialsInfo = function() { ngToast.info({ content: 'Since entity is a unique key, you can edit only username & password', @@ -92,14 +92,14 @@ angular.module('zeppelinWebApp').controller('CredentialCtrl', function($scope, $ timeout: '3000' }); }; - + $scope.updateCredentialInfo = function(form, data, entity) { var request = { entity: entity, username: data.username, password: data.password }; - + $http.put(baseUrlSrv.getRestApiBase() + '/credential/', request). success(function(data, status, headers, config) { var index = _.findIndex($scope.credentialInfo, { 'entity': entity }); @@ -117,7 +117,7 @@ angular.module('zeppelinWebApp').controller('CredentialCtrl', function($scope, $ }); return false; }; - + $scope.removeCredentialInfo = function(entity) { BootstrapDialog.confirm({ closable: false, @@ -140,10 +140,10 @@ angular.module('zeppelinWebApp').controller('CredentialCtrl', function($scope, $ } }); }; - + var init = function() { getCredentialInfo(); }; - + init(); }); \ No newline at end of file From 899bb15eb881aa53df475d95ac4e42d7167081d9 Mon Sep 17 00:00:00 2001 From: AhyoungRyu Date: Wed, 6 Jul 2016 15:38:40 +0900 Subject: [PATCH 09/11] Fix a bug reported by @Leemoonsoo --- zeppelin-web/src/app/credential/credential.controller.js | 2 +- zeppelin-web/src/app/credential/credential.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/zeppelin-web/src/app/credential/credential.controller.js b/zeppelin-web/src/app/credential/credential.controller.js index 7142dcae890..a8492035b58 100644 --- a/zeppelin-web/src/app/credential/credential.controller.js +++ b/zeppelin-web/src/app/credential/credential.controller.js @@ -146,4 +146,4 @@ angular.module('zeppelinWebApp').controller('CredentialCtrl', function($scope, $ }; init(); -}); \ No newline at end of file +}); diff --git a/zeppelin-web/src/app/credential/credential.html b/zeppelin-web/src/app/credential/credential.html index d4131b19be6..d5d9e848fe8 100644 --- a/zeppelin-web/src/app/credential/credential.html +++ b/zeppelin-web/src/app/credential/credential.html @@ -138,7 +138,7 @@

      Add new credential

      From ab9814cc9c9874f486b6f0d11ea73f9d78e929b2 Mon Sep 17 00:00:00 2001 From: AhyoungRyu Date: Wed, 6 Jul 2016 17:58:47 +0900 Subject: [PATCH 10/11] Remove cancelCredentialInfoUpdate() --- zeppelin-web/src/app/credential/credential.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zeppelin-web/src/app/credential/credential.html b/zeppelin-web/src/app/credential/credential.html index d5d9e848fe8..d4131b19be6 100644 --- a/zeppelin-web/src/app/credential/credential.html +++ b/zeppelin-web/src/app/credential/credential.html @@ -138,7 +138,7 @@

      Add new credential

      From 7c38c9090fea9a813f1c4fc6f0a13f1c5f8443db Mon Sep 17 00:00:00 2001 From: AhyoungRyu Date: Sat, 9 Jul 2016 22:48:16 +0900 Subject: [PATCH 11/11] Fix checkstyle error with jscs rule --- .../app/credential/credential.controller.js | 127 +++++++++--------- 1 file changed, 63 insertions(+), 64 deletions(-) diff --git a/zeppelin-web/src/app/credential/credential.controller.js b/zeppelin-web/src/app/credential/credential.controller.js index a8492035b58..621e499ce7f 100644 --- a/zeppelin-web/src/app/credential/credential.controller.js +++ b/zeppelin-web/src/app/credential/credential.controller.js @@ -14,27 +14,26 @@ */ 'use strict'; -angular.module('zeppelinWebApp').controller('CredentialCtrl', function($scope, $route, $routeParams, $location, $rootScope, - $http, baseUrlSrv, ngToast) { +angular.module('zeppelinWebApp').controller('CredentialCtrl', function($scope, $route, $routeParams, $location, + $rootScope, $http, baseUrlSrv, ngToast) { $scope._ = _; - + $scope.credentialInfo = []; $scope.showAddNewCredentialInfo = false; - + var getCredentialInfo = function() { - $http.get(baseUrlSrv.getRestApiBase()+'/credential'). - success(function(data, status, headers, config) { - - $scope.credentialInfo = _.map(data.body.userCredentials, function(value, prop) { - return {entity: prop, password: value.password, username: value.username }; - }); - console.log('Success %o %o', status, $scope.credentialInfo); - }). - error(function(data, status, headers, config) { - console.log('Error %o %o', status, data.message); + $http.get(baseUrlSrv.getRestApiBase() + '/credential'). + success(function(data, status, headers, config) { + $scope.credentialInfo = _.map(data.body.userCredentials, function(value, prop) { + return {entity: prop, password: value.password, username: value.username}; }); + console.log('Success %o %o', status, $scope.credentialInfo); + }). + error(function(data, status, headers, config) { + console.log('Error %o %o', status, data.message); + }); }; - + $scope.addNewCredentialInfo = function() { if ($scope.entity && _.isEmpty($scope.entity.trim()) && $scope.username && _.isEmpty($scope.username.trim())) { @@ -45,46 +44,46 @@ angular.module('zeppelinWebApp').controller('CredentialCtrl', function($scope, $ }); return; } - + var newCredential = { 'entity': $scope.entity, 'username': $scope.username, 'password': $scope.password }; - + $http.put(baseUrlSrv.getRestApiBase() + '/credential', newCredential). - success(function(data, status, headers, config) { - ngToast.success({ - content: 'Successfully saved credentials.', - verticalPosition: 'bottom', - timeout: '3000' - }); - $scope.credentialInfo.push(newCredential); - resetCredentialInfo(); - $scope.showAddNewCredentialInfo = false; - console.log('Success %o %o', status, data.message); - }). - error(function(data, status, headers, config) { - ngToast.danger({ - content: 'Error saving credentials', - verticalPosition: 'bottom', - timeout: '3000' - }); - console.log('Error %o %o', status, data.message); + success(function(data, status, headers, config) { + ngToast.success({ + content: 'Successfully saved credentials.', + verticalPosition: 'bottom', + timeout: '3000' + }); + $scope.credentialInfo.push(newCredential); + resetCredentialInfo(); + $scope.showAddNewCredentialInfo = false; + console.log('Success %o %o', status, data.message); + }). + error(function(data, status, headers, config) { + ngToast.danger({ + content: 'Error saving credentials', + verticalPosition: 'bottom', + timeout: '3000' }); + console.log('Error %o %o', status, data.message); + }); }; - + $scope.cancelCredentialInfo = function() { $scope.showAddNewCredentialInfo = false; resetCredentialInfo(); }; - + var resetCredentialInfo = function() { $scope.entity = ''; $scope.username = ''; $scope.password = ''; }; - + $scope.copyOriginCredentialsInfo = function() { ngToast.info({ content: 'Since entity is a unique key, you can edit only username & password', @@ -92,32 +91,32 @@ angular.module('zeppelinWebApp').controller('CredentialCtrl', function($scope, $ timeout: '3000' }); }; - + $scope.updateCredentialInfo = function(form, data, entity) { var request = { entity: entity, username: data.username, password: data.password }; - + $http.put(baseUrlSrv.getRestApiBase() + '/credential/', request). - success(function(data, status, headers, config) { - var index = _.findIndex($scope.credentialInfo, { 'entity': entity }); - $scope.credentialInfo[index] = request; - return true; - }). - error(function(data, status, headers, config) { - console.log('Error %o %o', status, data.message); - ngToast.danger({ - content: 'We couldn\'t save the credential', - verticalPosition: 'bottom', - timeout: '3000' - }); - form.$show(); + success(function(data, status, headers, config) { + var index = _.findIndex($scope.credentialInfo, {'entity': entity}); + $scope.credentialInfo[index] = request; + return true; + }). + error(function(data, status, headers, config) { + console.log('Error %o %o', status, data.message); + ngToast.danger({ + content: 'We couldn\'t save the credential', + verticalPosition: 'bottom', + timeout: '3000' }); + form.$show(); + }); return false; }; - + $scope.removeCredentialInfo = function(entity) { BootstrapDialog.confirm({ closable: false, @@ -128,22 +127,22 @@ angular.module('zeppelinWebApp').controller('CredentialCtrl', function($scope, $ callback: function(result) { if (result) { $http.delete(baseUrlSrv.getRestApiBase() + '/credential/' + entity). - success(function(data, status, headers, config) { - var index = _.findIndex($scope.credentialInfo, { 'entity': entity }); - $scope.credentialInfo.splice(index, 1); - console.log('Success %o %o', status, data.message); - }). - error(function(data, status, headers, config) { - console.log('Error %o %o', status, data.message); - }); + success(function(data, status, headers, config) { + var index = _.findIndex($scope.credentialInfo, {'entity': entity}); + $scope.credentialInfo.splice(index, 1); + console.log('Success %o %o', status, data.message); + }). + error(function(data, status, headers, config) { + console.log('Error %o %o', status, data.message); + }); } } }); }; - + var init = function() { getCredentialInfo(); }; - + init(); });