From c8ed7691e0fbcb654931ff49311f7a11b1ada178 Mon Sep 17 00:00:00 2001 From: Gary Spencer Date: Tue, 5 Sep 2006 10:04:44 +0000 Subject: [PATCH] Added environment variable expansion to the command line handling of desktop actions, plus the special '%AlfrescoDir%' token for the current working directory path (from the client side). Updated sample commandline test action to use '%SystemRoot%\Notepad.exe'. Added lock check to check out action code to give more meaningful error message. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@3689 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- config/alfresco/desktop/Alfresco.exe | Bin 49152 -> 53248 bytes source/cpp/CAlfrescoApp/CAlfrescoApp.cpp | 209 +++++++++++++++--- source/cpp/CAlfrescoApp/CAlfrescoApp.h | 13 +- .../cpp/CAlfrescoApp/source/util/String.cpp | 3 +- .../repo/desk/CheckInOutDesktopAction.java | 23 ++ .../repo/desk/CmdLineDesktopAction.java | 2 +- 6 files changed, 211 insertions(+), 39 deletions(-) diff --git a/config/alfresco/desktop/Alfresco.exe b/config/alfresco/desktop/Alfresco.exe index 94aee691abfd22854a04168507825728bd5727f7..2bc8239ab159b0435d0c3b24b280cc28c48d50fe 100644 GIT binary patch delta 20200 zcmeHueOy#k{{Nj}#8FWo2Lv5))QjOW0u~19sDNmo!-G5|B0e?}Dd}LeUvmZrTJSP0 zcBrV_!tB9Xx5bAo>T4~jDQ#4ITer2vKNme9q_Te9q%NcW}9aT&+P(sXBSz{0!&Pv7Zc>H1JG%z%&l!`Ib6U6vq#nMse&m znSnp@K5H5SJob}sOrt*~zDLyhT2;=)aqgB4cG4-Rk1bsgvUCRFo#d-&8m&hN(v8q9 zG73T^NH&E$e?4#*z(r-Nl1JG2pWzsD+c;VF>5JR6)uqzEE?l_nZ>j$sAz z(QH9*pEgKmN>3U%BQfJC_u04Dt-{6w&??w+3J#n*Vigik+dOGv$i{<2l)h|mh(=$; z;To$TrHN*nXGO@_G%9(&0~{qqP(bnu zf2qG6UB1|6=un(g9ewrx#!;3T9-ab8&x*1$X`)H*iy%Fo6;>+gw30|A*rht@Jv7JU zqX%Wy9BvD}&JepCK6wJyV*b~1b8niYKX-%`-!v&=rVU*@TrUWoMllU2FGn70V@)?5 z)0gaF>7ys=6IL?&=olwdstrUp?A$Wg4K;n|Af17$$AYlytinTGCeKL(bHDq0U#PS8a~&M5tV4Vn#Wt#3 zHAfKYzB*GY_CuF$_o9Mws_I5n4zP<@*3ZR2QTf4m1&n%m{4Kn(onX*}mEayTxX zs=r!(kQ`~`1eIOYQJ#hokyI|^$j;}p1R=45N6vjZB;f+W*9Zj|J{Euohy%=!(!}Z= z2CN9xh@2&t#B(sR=ubzftsJWJT~>i2xrPFrB}VxoE`p+JlpJEU>V*-SQ1V3>T~4cD zDh%vKyR2$-jJy&>qeE=py)O!y4@$Zw?=YLRUV|cX@k-zd;2v? zEoh;lbd;jhc9{jQ%zXooJYUhAm+aCSH6rP$(*J!`lNK$Vv37yhhclvL!8Y(Y)0DB@`njqul(5(!GAb-doflz|KXrOnp5|cBTRZv{`22` zz5@Bh#Y`Vrpg%W@-4Quc|LiQ*5Lpu21^pPf2+65cQXhhm6BvvTWhAlTW9IAMn#z`q znGjC=XUr*ISACgyAumtUvyFF^2zN>~k5H&^r z{X+Iq)bqL;RuH{Wzy4cxBKoL4bpfj!dp^LLw8UVO^X9YSaVx_*;6&Z$4nxWpj$mIz zM-6KqH#M4w4ZB2(C-te6-Nt)|r0h2AP-?#&w@(iyk9lhNp+G;A(bep%S=3Jy+2`gm z-TTK@j5q7_*4tP`%#u<6n8%|@E2DgD0ed~>l>UqPY|n(HWiTXVUkMo3Qg&bByK?n> zL6H8s=46<98t|t4!{_sN7oE{wxNC5v)%4L8;XfSElCK^P*i_5C;K`!L5<+j`GzBI2q_MF7tDcIIwh`gAScsJ4xC74xt2MH;`VQ9m{8?4TLV@ zQa7Sz@fnn8FQ}BeCWEDs6I3pBt8t%*5Np9kOLQe)nkzB;!(6OsV!HnMvFvw1{V^nZQ<0nub1pU{aj95_NL;t=wEa6szWf_`&Vhlk)WM z$Fm8OCmSD^eZE4RRM_&#v-RhH%>HX~Lik#*&sW>v7)$am#7;rl9UDE4 zMx#_BrXsQx*nueKv;pxJ8m6QcN1^pKr%!;4@j@G#y$SBpae`Kw>qThO>iq?0%LiNU z?|9aTtT*GO^MN8bg@^b#5prTq8$orv9dwY))}8Gzk_2KtYCBJ z8x&T1wFeCH`7eAv@8cM_NxV`T_6Q4Y z4`#9p<%8Qpet=!J>*i$f1T^>$3>u?N9>DobbC8|CIcAdT#{{9Oh`Xb@GScq~i;5dR z{@Rv?<;uGQ73Id=>?Di+txL0*BPRwhBC4amy=Lmt+#OyqICtHBMcTwo6Z5Y*(x-_P z>UQhJX=xXZ4leYuq(mw4g0sFv9Me#OgINgdyqg~s3S zbdXz`EOo#6+0d^}>Z(!?Ep#Mf23k^1IYv-er+2>jjlL>24}E{S0eyc@JOq^bVK#Z$ zY`%QquyYWKaFR0T7JAa0qRoa4VPza=%}hCUCQWqcLTg8X=T}B}nsT-(5 z&%nXnvG#f=;nDVdLLv4fLPP9EAgG9!zZt7_J3n-mi1hB~2-=xAZ$=={uC zrZ@aUzoxGe9ZnnP*jZ*C&G+S=8T5)O{|4y5Ia>FOQaH{bxt{FfvS~D2f5(@ntj5{L z&!%4`+j1X`mj1f0?jOyUviiLkz%D58mSfqa*VVdRSS@X&LN^8~@b>A+ZplIUO!`%w zJU_?G-TM$?ld% zLE*eASxP^*Bgm6}4h~GT$w#JxcR&x;A>gUXS9;0gp=BFHgKYm8i=t*nFGu5u36D^v z?WG>_7-esxpKu+vaJa6{moMbK{PEyF23ONwU3&MV>BOi z16X+E`J7!HKYIBL4X1zOD!SD`{mOI+<8-^&_=Jg(pT%MLoHk%{3KJTF9p*y3Ps^)V zenOJ2o;4)Q7`0kqsPpX{StxI2rxN0Hud}{{7=26}3rS4SeZUqb&I$28@zLPM!zvP& zOg2kcJs(9V>{roXEJhaj#bGFId>EyC(U>d0%RWe)U(ESlxQ1`}wS0F^!?92bw#g^a zIquU&cSeY@)P35lzENO@i@rNxhZD8Ks6FZ4u=~Ri6zo*ky{x?9|C^K<7JEH$>D)Uf zmd9cMj*`wx83tQUp1c-Du^hX08wG4yk-2gLdw=d-6F(NgRbT*HaIP&+{>{`tu2DJi zbH`TSV$e-|b@DaJUg9APP*%fSw_dia4|F@uzcCNCfF);Qx?D`2jWlFl0@8)^#_49U z)$=kVS^|ZQTASPF&7rlgcV4zGpUt~%ylx6Byls~5Q})1Zp72h;i1J>_#FSai&xXTS zyo=WP94333WW{}?{NV^eCx@X|cYXGEKLT#iYiLj^7&4$rk=z%?eWIJKx4=K^KReNfVRQ z6$~z0VcKH1Db0BRO{C_mfN6V{Lfa0SJyXeVrVylwX>}bABb_pcA38Dv-CwNgC|ByT zw7PVP*A%sKg;HtLDyeR`T9=^IAUCg%SK+w5ZSGLN4#Bd)T^(iIev@Q1;B;IaQ19-zp3;S{HLc+A-&y!#9oLmBuPawv zQ)ad$ixBmPmMn|}UGs!2<X2)htu5`xQNrI zEY_bk9(<$HBWFM@MrfE4&Qv-p$q(b)fbkhd_iIGJI80W?p)EZsISl)``*f0eSL$yX zy6}f>wx%a?YtW224CRWoPn37#8(Y(@V^JBC;c99|TmoEGZW@(HmkgHS1gv}gEzZ$a zrbjZw#kn|8NlQ%ySPpQ%83)5=-pm&jdP@I}S=vFKE_1gJk(L^IgFH(Op|6-L>DBBW zb~PiPMuIYZ)+(P03-CH>41Fbdb6rQF^o=7b^py@A{Cp9OU<`dFL+?JLM^%-qvXh6= zl>sY+Iq;jJsI3rKi;~bEMw{ICHJv0WPJEGw^hFdwGx~+@k7wWjrrdqJwRD10`8J79 z5>|}QOf>XMVzZZE7s+|eLS4EU%5a{;5^2cg-ybPph_M^#ofu$ z``8JHpp&oSZJa*FSwX1;MSnIUpW1RZqlouPD*K;IOUzvug8xlr`{1<~F&nTNndJvr z=(3wJCT?A35r=>gVONz6k>66ru35FG+<^VpvdOw&_SCY7xkac}-kjip{3BdSU_l(^ zr`W$kobERT?Mx^SLa;2fpPXjiWg>My`Xv=TBAZCbMrDgO;^a=33!jj$bU}uC16S*~ zRmw2AJAC*Ggy!;XYXpWm6sXP)mETc@{x#0x+fZqgXE%LN7>W-HXR*kHx$sKbxZFZ- zhYcC|<$BGKbpYND_#8Rz4xLRSPFILkBMQ(DayCr#&LJQ0K?PkeSHL-Zsy5^M8AVi{ zaYG;AajF_Z^-D31Mr``+W?eYTyxsgyAA)z>K9#)ltVmXNcNoB`apNz^eB^~_8!k@F zVg9WRqs@3vz$7WrhFY3fq|RyWGkm2wWsZyWh`p4-#${O||K}6T^_AH9mG7IYYNAHHOBvL`z$G>y*BHI20U$$H577hffZ=-ug$UQS-% z3Zs3r;@@~={oj1P#0#DkbY&JLU-^eIAfc;W7q;4PnLo2RiN;FH=)YI{7&^bmi>upZP=L z?yIKVZ|Ta}xfy>!IQiG_>^AKVB>^;L)!_qz-#^f+{$41>h|z9P=#D}!ufo9bXe|64 zu5)GV`fX6*$!?Qx2F9)3_7POL1BHf+BE04HPNn;j*G}NAxg;NN&3o6pUwfg-Bvo}v z8Tpv%QRshlL4+Xe2=dSWOd4C%w|V(Vw$c_or+*}d{9o6cLY!{fJ{YH(z9z&#n=-Zh zGqAQ3K4x3u6h1?nuRMl9iCa~h?1mC01Q_JHQE$O!m2<- zy&UwvJSg&g<8+=5NWVsqy>3q4)Q_I%@ny?o6lpA)UY+Vp)^$vh5s-SpG#|%(kSOp`CFR!e(!O?*GwyaEx$^}x@ncq6GtO2 zYyPNAS)yH~Xuq!U`>d18dbno#U_@~dHA~!st1uug&r}u+HIbxxU z5Bs}V8Nsv$V!L;!8?QcZMa+I$$9Ui7i?&>O0=-fS2Huetc`e(T7d0m1kN$onH=1EX zFSoLv=8eg;D-p{AnZ}UX0DR5HD;hpO$t@U#(h5V}+f|0dj$WgbVVwTvn*(|!+#{&+ zy+ogU^d!5Q7rp9J^a+W&-!jlvA17yU2K;D5-gVOFOBvYyYpFssp$cP%c3Hcrb(nyy z_DNbhK$Rols??8OrGW}cs=R@f=P#P1oPcN$l9xJp(Z^hXI*eh3 zq4(uC@a4H71|$=fycyh=>F_1xRA^lc?7gshS}*}D4D&*rJy9ackb&b$WTT?#GNwa(v zk>|6H=*NP|OFC0fgXNx&*%t-#oDtNUjeJ_7hMF}vQLYOGw-gCW$W%xJ@@j0-bw1T| zqaz81)S#N>l`u@!Dp5^gA141?dB@ju;#UPUXC?Mr;e;85N}Wl5@&a#1)k}gxVHC5jY`qUul$}1C94DhJ5OOz>Z~XH!|=v0=zKHA zVGkYq-6!nLqA2}_&)Lf2iAl5xV&eZN3Op>nc)ad?wxakBX9u-E!yp;jmA4OHY!)cK z*fgG6d78@8WS%DRG@hsQj^>MvWv0do2>VbqE-Wan>5)orYQ6Fn0h>Xd1@ZUBqZ7#(Oy9*&!sa7w}1E zO;43E57sTPJ8yi}%R{Y#Bif$zGMiH}Iv7j`lJ>CWC9A@qZ{BzrX;l_nPu|0RQIa?V z#l#CLc__$Mn3y-7Y*%4dO+yJs8hmE(9k_CojapOVL=E0`KrhGX*aTc$d@v1G4rU_3 z(Fhc2q!A%+zzjF@l7W{FSg0TzOa`BP4?LIi5EJ+Oz9Uvas0y*K+f4Ezn2O~vUL&K% zS2c_b#SuBN-D#e7A}u%B z+n!*ov_#+i1pBgd-O_&Q(K&F#HOc|5rgP?p=qGPz<%j z?oIg0#o2uyg3mWM?Pd1Z+6j>q2H%HD1gd&`AG%MQ5fk>_+9dt?8fGY4oR9^Mg2Hw~ zlU4W?B`Ig6{vDxGF#22X>vo?pq

o%eAGaz!O3|Ax*5h%&bq{!yYMf>cjT4G3&O3 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 bc?QZ?^?v!dE}ZrQ^y{17J$A>@=SKb??P9Ft delta 18702 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 0) + newCmdLine = cmdLine.substring( 0, pos); + + wchar_t envBuf[256]; + size_t envLen; + + while ( pos != -1) { + + // Find the end of the current token + + int endPos = cmdLine.indexOf ( L'%', pos + 1); + + if ( endPos == -1) { + CString msg; + msg.FormatMessage( L"Bad token in command line\n\n%1", cmdLine.data()); + AfxMessageBox( msg, MB_OK | MB_ICONERROR); + + return false; + } + + // Extract the token + + String token = cmdLine.substring( pos + 1, endPos); + + // Replace the token with an environment variable value or other values + + if ( token.equals( L"AlfrescoDir")) { + + // Use the local path to the Alfresco folder that the application is running from + + newCmdLine.append( alfresco.getUNCPath()); + } + else { + + // Find the environment variable value + + envLen = sizeof( envBuf)/sizeof(wchar_t); + const wchar_t* pEnvName = token.data(); + + if ( _wgetenv_s( &envLen, envBuf, envLen, pEnvName) == 0) { + + // Append the environment variable value + + newCmdLine.append( envBuf); + } + else { + + // Error converting the environment variable + + CString msg; + msg.FormatMessage( L"Failed to convert environment variable\n\n%1\n\n%2", token.data(), cmdLine.data()); + AfxMessageBox( msg, MB_OK | MB_ICONERROR); + + return false; + } + } + + // Update the token search position + + pos = endPos + 1; + + if (( unsigned int) pos < cmdStr.length()) { + + // Search for the next token + + pos = cmdLine.indexOf( L'%', pos); + } + else { + + // End of string, finish the token search + + pos = -1; + } + + // Append the normal string between tokens + + if ( pos > (endPos + 1)) { + + // Get the between token sting + + String filler = cmdLine.substring( endPos + 1, pos); + newCmdLine.append( filler); + } + else if ( pos == -1) { + + // Append the remaining string + + String filler = cmdLine.substring( endPos + 1); + newCmdLine.append( filler); + } + } + + // Update the command line + + cmdLine = newCmdLine; + } + + // Initialize the startup information + + STARTUPINFO startupInfo; + memset(&startupInfo, 0, sizeof(STARTUPINFO)); + + // Launch a process using the command line + + PROCESS_INFORMATION processInfo; + memset(&processInfo, 0, sizeof(PROCESS_INFORMATION)); + + bool sts = false; + + if ( CreateProcess( NULL, (LPWSTR) cmdLine.data(), NULL, NULL, true, 0, NULL, NULL, + &startupInfo, &processInfo) == false) { + CString msg; + msg.FormatMessage( L"Failed to launch command line\n\n%1\n\nError %2!d!", cmdLine.data(), GetLastError()); + AfxMessageBox( msg, MB_OK | MB_ICONERROR); + } + else + sts = true; + + return sts; +} + +/** + * Browse to a URL + * + * @param alfresco AlfrescoInterface& + * @param url const String& + * @return bool + */ +bool CAlfrescoApp::doURL( AlfrescoInterface& alfresco, const String& url) { + + // Use the Windows shell to open the URL + + bool sts = false; + + HINSTANCE shellSts = ShellExecute( NULL, NULL, url.data(), NULL, NULL, SW_SHOWNORMAL); + if (( int) shellSts < 32) { + CString msg; + msg.FormatMessage( L"Failed to launch URL\n\n%1", url.data()); + AfxMessageBox( msg, MB_OK | MB_ICONERROR); + } + else + sts = true; + + return sts; +} diff --git a/source/cpp/CAlfrescoApp/CAlfrescoApp.h b/source/cpp/CAlfrescoApp/CAlfrescoApp.h index 39ac0c6018..590ac23244 100644 --- a/source/cpp/CAlfrescoApp/CAlfrescoApp.h +++ b/source/cpp/CAlfrescoApp/CAlfrescoApp.h @@ -30,14 +30,14 @@ using namespace Alfresco; -// CCAlfrescoAppApp: +// CAlfrescoApp: // See CAlfrescoApp.cpp for the implementation of this class // -class CCAlfrescoAppApp : public CWinApp +class CAlfrescoApp : public CWinApp { public: - CCAlfrescoAppApp(); + CAlfrescoApp(); // Overrides public: @@ -59,6 +59,11 @@ private: // Run the action bool runAction( AlfrescoInterface& alfresco, StringList& pathList, AlfrescoActionInfo& actionInfo); + + // Post-process actions, command line launch and browse to URL + + bool doCommandLine( AlfrescoInterface& alfresco, const String& cmdLine); + bool doURL( AlfrescoInterface& alfresco, const String& url); }; -extern CCAlfrescoAppApp theApp; \ No newline at end of file +extern CAlfrescoApp theApp; \ No newline at end of file diff --git a/source/cpp/CAlfrescoApp/source/util/String.cpp b/source/cpp/CAlfrescoApp/source/util/String.cpp index 27ddbe069d..3723818db3 100644 --- a/source/cpp/CAlfrescoApp/source/util/String.cpp +++ b/source/cpp/CAlfrescoApp/source/util/String.cpp @@ -676,7 +676,8 @@ void String::append ( const char* str) { * @param str const wchar_t* */ void String::append (const wchar_t* str) { - m_string += str; + while ( *str != 0) + m_string += *str++; } /** diff --git a/source/java/org/alfresco/filesys/smb/server/repo/desk/CheckInOutDesktopAction.java b/source/java/org/alfresco/filesys/smb/server/repo/desk/CheckInOutDesktopAction.java index 0f98e425e3..fe39a6b277 100644 --- a/source/java/org/alfresco/filesys/smb/server/repo/desk/CheckInOutDesktopAction.java +++ b/source/java/org/alfresco/filesys/smb/server/repo/desk/CheckInOutDesktopAction.java @@ -113,6 +113,11 @@ public class CheckInOutDesktopAction extends DesktopAction { } catch (Exception ex) { + // Dump the error + + if ( logger.isErrorEnabled()) + logger.error("Desktop action error", ex); + // Return an error status and message response.setStatus(StsError, "Checkin failed for " + target.getTarget() + ", " + ex.getMessage()); @@ -122,6 +127,19 @@ public class CheckInOutDesktopAction extends DesktopAction { { try { + // Check if the file is locked + + if ( getNodeService().hasAspect( target.getNode(), ContentModel.ASPECT_LOCKABLE)) { + + // Get the lock type + + String lockTypeStr = (String) getNodeService().getProperty( target.getNode(), ContentModel.PROP_LOCK_TYPE); + if ( lockTypeStr != null) { + response.setStatus(StsError, "Checkout failed, file is locked"); + return response; + } + } + // Check out the file NodeRef workingCopyNode = getCheckInOutService().checkout( target.getNode()); @@ -149,6 +167,11 @@ public class CheckInOutDesktopAction extends DesktopAction { } catch (Exception ex) { + // Dump the error + + if ( logger.isErrorEnabled()) + logger.error("Desktop action error", ex); + // Return an error status and message response.setStatus(StsError, "Failed to checkout " + target.getTarget() + ", " + ex.getMessage()); diff --git a/source/java/org/alfresco/filesys/smb/server/repo/desk/CmdLineDesktopAction.java b/source/java/org/alfresco/filesys/smb/server/repo/desk/CmdLineDesktopAction.java index 6744204fdf..42625ea6a2 100644 --- a/source/java/org/alfresco/filesys/smb/server/repo/desk/CmdLineDesktopAction.java +++ b/source/java/org/alfresco/filesys/smb/server/repo/desk/CmdLineDesktopAction.java @@ -47,6 +47,6 @@ public class CmdLineDesktopAction extends DesktopAction { // Return a URL in the status message - return new DesktopResponse(StsCommandLine, "C:\\Windows\\notepad.exe"); + return new DesktopResponse(StsCommandLine, "%SystemRoot%\\notepad.exe"); } }