Zimbra offers Open Source email server software and shared calendar for Linux and the Mac
Go Back   Zimbra :: Forums > Zimbra Collaboration Suite > Users

Welcome to the Zimbra :: Forums!
Welcome, if you would like to post a comment please register. We also encourage you to explore all things Zimbra with our team and members of the community.

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1 (permalink)  
Old 11-15-2005, 12:10 PM
Loyal Member
 
Posts: 95
Default "Must change password" still doest work

Just want to let you know that when creating a user if I tick the "must change password" checkbox, that user wont be able to login to Zimbra. Instead of returning a error like MI, this time it just hang, nothing happned.

When I turned on debug, it returned something like below:

Quote:
code: "account.CHANGE_PASSWORD",
detail: "soap:Sender",
method: "ZmCsfeCommand.prototype.invoke",
msg: "must change password\ncom.zimbra.cs.account.AccountServiceExce ption: must change password\n\tat com.zimbra.cs.account.AccountServiceException.CHAN GE_PASSWORD(AccountServiceException.java:83)\n\tat com.zimbra.cs.account.ldap.LdapProvisioning.authAc count(LdapProvisioning.java:1948)\n\tat com.zimbra.cs.account.ldap.LdapProvisioning.authAc count(LdapProvisioning.java:1913)\n\tat com.zimbra.cs.service.account.Auth.handle(Auth.jav a:73)\n\tat com.zimbra.soap.SoapEngine.dispatchRequest(SoapEng ine.java:249)\n\tat com.zimbra.soap.SoapEngine.dispatch(SoapEngine.jav a:163)\n\tat com.zimbra.soap.SoapEngine.dispatch(SoapEngine.jav a:84)\n\tat com.zimbra.soap.SoapServlet.doPost(SoapServlet.jav a:226)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet .java:709)\n\tat com.zimbra.cs.servlet.ZimbraServlet.service(Zimbra Servlet.java:148)\n\tat javax.servlet.http.HttpServlet.service(HttpServlet .java:802)\n\tat org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:252)\n\ tat org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:173)\n\tat org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:214)\n\tat org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:178)\n\tat org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:126)\n\tat org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:105)\n\tat org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:107)\n\tat org.apache.catalina.valves.AccessLogValve.invoke(A ccessLogValve.java:526)\n\tat org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:148)\n\tat org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:825)\n\tat org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.processConnection(Http11Protocol.jav a:738)\n\tat org.apache.tomcat.util.net.PoolTcpEndpoint.process Socket(PoolTcpEndpoint.java:526)\n\tat org.apache.tomcat.util.net.LeaderFollowerWorkerThr ead.runIt(LeaderFollowerWorkerThread.java:80)\n\ta t org.apache.tomcat.util.threads.ThreadPool$ControlR unnable.run(ThreadPool.java:684)\n\tat java.lang.Thread.run(Thread.java:595)\n"
My setup: Zimbra Network Trial on FC3.

PS: why cant COS include "must change password" (and "Administrator account")? I just want to make sure that all of my users must change their password the first time they logon into Zimbra but dont know how to accomplish this easier if COS cant include "must change password".

-g

Last edited by graffiti; 11-15-2005 at 12:14 PM..
Reply With Quote
  #2 (permalink)  
Old 11-15-2005, 12:57 PM
Zimbra Employee
 
Posts: 228
Default

doh. looks like a last minute change to async soap call broke something. Someone will post a two line fix in a second.

Regarding "must change password", it was originally designed to be per-account setting, that would get set when needed, and then removed (not set to false) after someone changes their password. I can file an RFE on it to add it to the COS, and modify the server code so it sets it to false on the account object.

roland
Reply With Quote
  #3 (permalink)  
Old 11-15-2005, 01:25 PM
Zimbra Employee
 
Posts: 269
Default

Thanks for the report. Here's the two line fix:

Code:
Differences ...

==== /ZimbraWebClient/WebRoot/js/zimbraMail/share/view/ZmLogin.js#11 (ktext) ====


387,389d386
< 	var unameField = document.getElementById("uname");
< 	var pwordField = document.getElementById("pass");
< 	
404c401
< 	
---
> 
415a413,415
> 			var unameField = document.getElementById("uname");
> 			var pwordField = document.getElementById("pass");
>
Depending on whether you have the entire source downloaded or not, you'll want make this fix in one of two ways..

1) Edit the production file (no deployment necessary)
2) Edit the source file and redeploy ZimbraWebClient


Here are detailed instructions on editing the production file:
  1. Locate where you've installed zimbra mail (most likely under tomcat/webapps/zimbra/js)
  2. Open ZmLogin.js (this should be in the root js folder, along w/ Ajax_all.js, ZimbraMail_all.js, etc)
  3. Make the fixes as described above (or read below for more info)
  4. Delete the now old ZmLogin.js.jgz
  5. Gzip ZmLogin.js (and rename to ZmLogin.js.jgz if necessary)
  6. Clear your cache on your browser (if using IE) and hit refresh

-----------------
Here are detailed instructions on editing the source file:
  1. Open ZimbraWebClient/ZimbraWebClient/WebRoot/js/zimbraMail/share/view/ZmLogin.js in your favorite editor
  2. Move lines 387 and 388 to after line 415

So basically, the two methods you've edited should end up looking like this:
Code:
ZmLogin.submitAuthRequest = 
function(uname, pword) {
	try {
	    var soapDoc = AjxSoapDoc.create("AuthRequest", "urn:zimbraAccount");
	} catch (ex) {
		if (AjxEnv.isIE && (ex.code == AjxException.INTERNAL_ERROR))
			ZmLogin.setErrorMessage(ZmMsg.errorNoActiveX);
		return;
	}

    var el = soapDoc.set("account", uname);
    el.setAttribute("by", "name");
    soapDoc.set("password", pword);

	var command = new ZmCsfeCommand();
	var respCallback = new AjxCallback(null, ZmLogin._handleResponseSubmitAuthRequest, [uname, pword]);
	command.invoke({soapDoc: soapDoc, noAuthToken: true, noSession: true, asyncMode: true, callback: respCallback});
}

ZmLogin._handleResponseSubmitAuthRequest =
function(args) {
	var uname	= args[0];
	var pword	= args[1];
	var result	= args[2];

	var response;
	try {
		response = result.getResponse();
	} catch (ex) {
		DBG.dumpObj(ex);
		if (ex.code == ZmCsfeException.ACCT_AUTH_FAILED || ex.code == ZmCsfeException.NO_SUCH_ACCOUNT) {
			ZmLogin.setErrorMessage(ZmMsg.loginError);
		} else if (ex.code == ZmCsfeException.SOAP_ERROR || ex.code == ZmCsfeException.NETWORK_ERROR) {
			var msg = ZmMsg.errorNetwork + "\n\n" + ZmMsg.errorTryAgain + " " + ZmMsg.errorContact;
			ZmLogin.setErrorMessage(msg);
		} else if (ex.code == ZmCsfeException.ACCT_CHANGE_PASSWORD)	{
			var unameField = document.getElementById("uname");
			var pwordField = document.getElementById("pass");

			// disable username and password fields
			unameField.disabled = pwordField.disabled = true;
			ZmLogin.showChangePass(ex);
		} else {
			var msg = ZmMsg.errorApplication + "\n\n" + ZmMsg.errorTryAgain + " " + ZmMsg.errorContact;
			ZmLogin.setErrorMessage(msg + " (" + ex.code + ")");
		}
		return;
	}
	var resp = response.Body.AuthResponse;
	ZmLogin._authToken = resp.authToken;
	ZmLogin._authTokenLifetime = resp.lifetime;
	var mailServer = resp.refer;
	var pcChecked = document.getElementById("publicComputer").checked;
	ZmLogin.handleSuccess(ZmLogin._authToken, ZmLogin._authTokenLifetime, mailServer, uname, pword, !pcChecked);
	ZmLogin._authToken = ZmLogin._authTokenLifetime = null;
};



Dont forget to redeploy the web client (using Ant)
  1. Open up a console or in windows, the command prompt.
  2. Change to folder *zimbra_src_install*/ZimbraWebClient
  3. type "ant prod-deploy" (w/o quotes)

The prod-deply target will do all the right things to deploy the web client into production.

Last edited by pshah; 11-15-2005 at 02:32 PM..
Reply With Quote
  #4 (permalink)  
Old 12-05-2005, 03:15 PM
Advanced Member
 
Posts: 232
Default

Quote:
Originally Posted by pshah
Thanks for the report. Here's the two line fix:

Dont forget to redeploy the web client (using Ant)
  1. Open up a console or in windows, the command prompt.
  2. Change to folder *zimbra_src_install*/ZimbraWebClient
  3. type "ant prod-deploy" (w/o quotes)

The prod-deply target will do all the right things to deploy the web client into production.
When trying to fix the failure of "Must Change Password" does the above reference apply to both methods of repairing? Or just the pre-install repair? If it does apply to a system that already has Zimbra up and running where is this ZimbraWebClient folder?

Cheers,

Travis
Reply With Quote
  #5 (permalink)  
Old 12-05-2005, 04:15 PM
Zimbra Employee
 
Posts: 269
Default

You only need to run Ant and deploy for "pre-install" - meaning, if you've downloaded the source code and compiled it and have deployed it previously (you would know if you've already done this before).

Otherwise, editing the file in production (post-install) should work (assuming you clear cache on ur browser and then refresh).
Reply With Quote
  #6 (permalink)  
Old 12-05-2005, 09:00 PM
Senior Member
 
Posts: 51
Default

Thanks for the patch, just a side note, don't use tar -zcf todo the compression deffinalty use gzip.

-Ben
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes


Similar Threads

Why Join?

Registering let's you ask questions, makes it easier to search, displays any files attached to posts, and notifies you about replies.

blog.zimbra.com




 

SEO by vBSEO ©2011, Crawlability, Inc.