mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V3.0 to HEAD
11943: Fix for ETHREEOH-879 & ETHREEOH-783: Multi-valued properties not allowed in Alfresco 3.0 (due to java.lang.UnsupportedOperationException) 11944: Fix for ETHREEOH-865 11947: Build fix for site service unit test failures. This will be reviewed since it works round the issue rather than tackle why runAs is now failing. 11952: ETHREEOH-845, ETHREEOH-871, ETHREEOH-853, ETHREEOH-839 11953: ETHREEOH-483 Unable to upload files [with Flash 10 installed] Fixed to fit into yui 2.6.0 11954: Added missing 'protocolOrder' configuration value. 11956: Fix for ETHREEOH-895 11957: Fix for ETHREEOH-891. 11958: Readded generated source line for RemoteAPI project. 11959: ETHREEOH-483 Unable to upload files [with Flash 10 installed] Missed to add this image 11960: Removed JDK6 specific method. 11962: Fixed missing setup of the share mapper class name when the <class> config tag is used. ALFCOM-2060. 11964: fix for ETHREEOH-266 - restrict length of webapp to 150 chars. 11965: Merged 2.2 to 3.0 11926: Fox for ETHREEOH-725 User doesn't receive email to his box when rule 'Send an Email to specified users' is created 11966: ETHREEOH-872: Editing Email-notify-rules fails w/ ClassCastException 11967: MT - test fixes (post runAs merge) 11968: Changed Windows x64 NetBIOS warning message to be a debug message. ETHREEOH-897. 11971: ETHREEOH-829 Case issue when inserting Document Share links into a discussion using richtext editor 11973: Fix for ETHREEOH-890 - users with apostrophe in their login name can now login to Alfresco Explorer (and Share). git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@12490 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -215,10 +215,10 @@ public class LoginBean implements Serializable
|
||||
int minPasswordLength = Application.getClientConfig(context).getMinPasswordLength();
|
||||
|
||||
String pass = (String)value;
|
||||
if (pass.length() < minPasswordLength || pass.length() > 32)
|
||||
if (pass.length() < minPasswordLength || pass.length() > 256)
|
||||
{
|
||||
String err = MessageFormat.format(Application.getMessage(context, MSG_PASSWORD_LENGTH),
|
||||
new Object[]{minPasswordLength, 32});
|
||||
new Object[]{minPasswordLength, 256});
|
||||
throw new ValidatorException(new FacesMessage(err));
|
||||
}
|
||||
}
|
||||
@@ -231,8 +231,7 @@ public class LoginBean implements Serializable
|
||||
{
|
||||
int minUsernameLength = Application.getClientConfig(context).getMinUsernameLength();
|
||||
|
||||
String name = (String) value;
|
||||
name = name.trim();
|
||||
String name = ((String)value).trim();
|
||||
|
||||
if (name.length() < minUsernameLength || name.length() > 256)
|
||||
{
|
||||
@@ -240,10 +239,10 @@ public class LoginBean implements Serializable
|
||||
new Object[]{minUsernameLength, 256});
|
||||
throw new ValidatorException(new FacesMessage(err));
|
||||
}
|
||||
if (name.indexOf('\'') != -1 || name.indexOf('"') != -1 || name.indexOf('\\') != -1)
|
||||
if (name.indexOf('"') != -1)
|
||||
{
|
||||
String err = MessageFormat.format(Application.getMessage(context, MSG_USER_ERR),
|
||||
new Object[]{"', \", \\"});
|
||||
new Object[]{"\""});
|
||||
throw new ValidatorException(new FacesMessage(err));
|
||||
}
|
||||
}
|
||||
@@ -426,11 +425,10 @@ public class LoginBean implements Serializable
|
||||
private static final String MSG_ERROR_UNKNOWN_USER = "error_login_user";
|
||||
private static final String MSG_ERROR_LOGIN_DISALLOWED = "error_login_disallowed";
|
||||
private static final String MSG_ERROR_LOGIN_MAXUSERS = "error_login_maxusers";
|
||||
private static final String MSG_USERNAME_CHARS = "login_err_username_chars";
|
||||
private static final String MSG_USERNAME_LENGTH = "login_err_username_length";
|
||||
private static final String MSG_PASSWORD_CHARS = "login_err_password_chars";
|
||||
private static final String MSG_PASSWORD_LENGTH = "login_err_password_length";
|
||||
private static final String MSG_USER_ERR = "user_err_user_name";
|
||||
|
||||
public static final String MSG_USERNAME_LENGTH = "login_err_username_length";
|
||||
public static final String MSG_PASSWORD_LENGTH = "login_err_password_length";
|
||||
public static final String MSG_USER_ERR = "user_err_user_name";
|
||||
|
||||
public static final String LOGIN_REDIRECT_KEY = "_alfRedirect";
|
||||
public static final String LOGIN_EXTERNAL_AUTH= "_alfExternalAuth";
|
||||
|
@@ -95,6 +95,7 @@ public class MailHandler extends BaseActionHandler
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public void prepareForEdit(Map<String, Serializable> actionProps,
|
||||
Map<String, Serializable> repoProps)
|
||||
{
|
||||
@@ -116,7 +117,23 @@ public class MailHandler extends BaseActionHandler
|
||||
}
|
||||
else
|
||||
{
|
||||
List<String> recipients = (List<String>)repoProps.get(MailActionExecuter.PARAM_TO_MANY);
|
||||
Object recipObj = repoProps.get(MailActionExecuter.PARAM_TO_MANY);
|
||||
|
||||
List<String> recipients = null;
|
||||
|
||||
if ( recipObj != null)
|
||||
{
|
||||
if ( recipObj instanceof String)
|
||||
{
|
||||
recipients = new ArrayList<String>();
|
||||
recipients.add((String) recipObj);
|
||||
}
|
||||
else if ( recipObj instanceof List)
|
||||
{
|
||||
recipients = (List<String>) recipObj;
|
||||
}
|
||||
}
|
||||
|
||||
if (recipients != null && recipients.size() != 0)
|
||||
{
|
||||
// rebuild the list of RecipientWrapper objects from the stored action
|
||||
|
@@ -55,6 +55,7 @@ public class CreateGroupDialog extends BaseDialogBean
|
||||
private static final String MSG_ROOT_GROUPS = "root_groups";
|
||||
private static final String MSG_BUTTON_NEW_GROUP = "new_group";
|
||||
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
// Dialog implementation
|
||||
|
||||
@@ -112,6 +113,7 @@ public class CreateGroupDialog extends BaseDialogBean
|
||||
return subtitle;
|
||||
}
|
||||
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
// Bean property getters and setters
|
||||
|
||||
@@ -135,13 +137,14 @@ public class CreateGroupDialog extends BaseDialogBean
|
||||
*/
|
||||
protected AuthorityService getAuthService()
|
||||
{
|
||||
//check for null in cluster environment
|
||||
if (authService == null)
|
||||
{
|
||||
authService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getAuthorityService();
|
||||
}
|
||||
return authService;
|
||||
}
|
||||
|
||||
|
||||
// ------------------------------------------------------------------------------
|
||||
// Helpers
|
||||
|
||||
@@ -149,10 +152,10 @@ public class CreateGroupDialog extends BaseDialogBean
|
||||
{
|
||||
String name = (String) value;
|
||||
|
||||
if (name.indexOf('\'') != -1 || name.indexOf('"') != -1 || name.indexOf('\\') != -1)
|
||||
if (name.indexOf('"') != -1 || name.indexOf('\\') != -1)
|
||||
{
|
||||
String err = MessageFormat.format(Application.getMessage(context, MSG_ERR_NAME),
|
||||
new Object[] { "', \", \\" });
|
||||
new Object[] { "\", \\" });
|
||||
throw new ValidatorException(new FacesMessage(err));
|
||||
}
|
||||
}
|
||||
|
@@ -109,6 +109,14 @@ public class Node implements Serializable
|
||||
for (QName qname: props.keySet())
|
||||
{
|
||||
Serializable propValue = props.get(qname);
|
||||
|
||||
// Lists returned from the node service could be unmodifiable,
|
||||
// therefore create copies for modification purposes
|
||||
if (propValue instanceof List)
|
||||
{
|
||||
propValue = new ArrayList((List)propValue);
|
||||
}
|
||||
|
||||
this.properties.put(qname.toString(), propValue);
|
||||
}
|
||||
|
||||
|
@@ -54,6 +54,7 @@ import org.alfresco.util.Pair;
|
||||
import org.alfresco.web.app.Application;
|
||||
import org.alfresco.web.app.context.UIContextService;
|
||||
import org.alfresco.web.app.servlet.FacesHelper;
|
||||
import org.alfresco.web.bean.LoginBean;
|
||||
import org.alfresco.web.bean.repository.Repository;
|
||||
import org.alfresco.web.bean.spaces.CreateSpaceWizard;
|
||||
import org.alfresco.web.bean.wizard.BaseWizardBean;
|
||||
@@ -113,13 +114,13 @@ public class CreateUserWizard extends BaseWizardBean
|
||||
/** ContentUsageService bean reference */
|
||||
transient private ContentUsageService contentUsageService;
|
||||
|
||||
|
||||
/** ref to the company home space folder */
|
||||
private NodeRef companyHomeSpaceRef = null;
|
||||
|
||||
/** ref to the default home location */
|
||||
private NodeRef defaultHomeSpaceRef;
|
||||
|
||||
|
||||
/**
|
||||
* @param authenticationService The AuthenticationService to set.
|
||||
*/
|
||||
@@ -128,13 +129,11 @@ public class CreateUserWizard extends BaseWizardBean
|
||||
this.authenticationService = authenticationService;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return authenticationService
|
||||
*/
|
||||
private AuthenticationService getAuthenticationService()
|
||||
{
|
||||
//check for null for cluster environment
|
||||
if (authenticationService == null)
|
||||
{
|
||||
authenticationService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getAuthenticationService();
|
||||
@@ -142,8 +141,6 @@ public class CreateUserWizard extends BaseWizardBean
|
||||
return authenticationService;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @param personService The person service.
|
||||
*/
|
||||
@@ -152,13 +149,11 @@ public class CreateUserWizard extends BaseWizardBean
|
||||
this.personService = personService;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return personService
|
||||
*/
|
||||
private PersonService getPersonService()
|
||||
{
|
||||
//check for null for cluster environment
|
||||
if (personService == null)
|
||||
{
|
||||
personService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getPersonService();
|
||||
@@ -166,7 +161,6 @@ public class CreateUserWizard extends BaseWizardBean
|
||||
return personService;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param tenantService The tenantService to set.
|
||||
*/
|
||||
@@ -180,7 +174,6 @@ public class CreateUserWizard extends BaseWizardBean
|
||||
*/
|
||||
private TenantService getTenantService()
|
||||
{
|
||||
//check for null for cluster environment
|
||||
if(tenantService == null)
|
||||
{
|
||||
tenantService = (TenantService) FacesHelper.getManagedBean(FacesContext.getCurrentInstance(), "tenantService");
|
||||
@@ -201,7 +194,6 @@ public class CreateUserWizard extends BaseWizardBean
|
||||
*/
|
||||
private PermissionService getPermissionService()
|
||||
{
|
||||
//check for null for cluster environment
|
||||
if (permissionService == null)
|
||||
{
|
||||
permissionService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getPermissionService();
|
||||
@@ -222,7 +214,6 @@ public class CreateUserWizard extends BaseWizardBean
|
||||
*/
|
||||
private OwnableService getOwnableService()
|
||||
{
|
||||
//check for null for cluster environment
|
||||
if (ownableService == null)
|
||||
{
|
||||
ownableService = Repository.getServiceRegistry(FacesContext.getCurrentInstance()).getOwnableService();
|
||||
@@ -243,7 +234,6 @@ public class CreateUserWizard extends BaseWizardBean
|
||||
*/
|
||||
private ContentUsageService getContentUsageService()
|
||||
{
|
||||
//check for null for cluster environment
|
||||
if (contentUsageService == null)
|
||||
{
|
||||
contentUsageService = (ContentUsageService) FacesHelper.getManagedBean(FacesContext.getCurrentInstance(), "ContentUsageService");
|
||||
@@ -255,9 +245,9 @@ public class CreateUserWizard extends BaseWizardBean
|
||||
* Initialises the wizard
|
||||
*/
|
||||
@Override
|
||||
public void init(Map<String, String> arg0)
|
||||
public void init(Map<String, String> params)
|
||||
{
|
||||
super.init(arg0);
|
||||
super.init(params);
|
||||
|
||||
// reset all variables
|
||||
this.firstName = "";
|
||||
@@ -606,42 +596,36 @@ public class CreateUserWizard extends BaseWizardBean
|
||||
*/
|
||||
public void validatePassword(FacesContext context, UIComponent component, Object value) throws ValidatorException
|
||||
{
|
||||
String pass = (String) value;
|
||||
if (pass.length() < 5 || pass.length() > 12)
|
||||
{
|
||||
String err = "Password must be between 5 and 12 characters in length.";
|
||||
throw new ValidatorException(new FacesMessage(err));
|
||||
}
|
||||
int minPasswordLength = Application.getClientConfig(context).getMinPasswordLength();
|
||||
|
||||
for (int i = 0; i < pass.length(); i++)
|
||||
String pass = (String)value;
|
||||
if (pass.length() < minPasswordLength || pass.length() > 256)
|
||||
{
|
||||
if (Character.isLetterOrDigit(pass.charAt(i)) == false)
|
||||
{
|
||||
String err = "Password can only contain characters or digits.";
|
||||
String err = MessageFormat.format(Application.getMessage(context, LoginBean.MSG_PASSWORD_LENGTH),
|
||||
new Object[]{minPasswordLength, 256});
|
||||
throw new ValidatorException(new FacesMessage(err));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate Username field data is acceptable
|
||||
*/
|
||||
public void validateUsername(FacesContext context, UIComponent component, Object value) throws ValidatorException
|
||||
{
|
||||
String pass = (String) value;
|
||||
if (pass.length() < 5 || pass.length() > 12)
|
||||
{
|
||||
String err = "Username must be between 5 and 12 characters in length.";
|
||||
throw new ValidatorException(new FacesMessage(err));
|
||||
}
|
||||
int minUsernameLength = Application.getClientConfig(context).getMinUsernameLength();
|
||||
|
||||
for (int i = 0; i < pass.length(); i++)
|
||||
String name = ((String)value).trim();
|
||||
if (name.length() < minUsernameLength || name.length() > 256)
|
||||
{
|
||||
if (Character.isLetterOrDigit(pass.charAt(i)) == false)
|
||||
{
|
||||
String err = "Username can only contain characters or digits.";
|
||||
String err = MessageFormat.format(Application.getMessage(context, LoginBean.MSG_USERNAME_LENGTH),
|
||||
new Object[]{minUsernameLength, 256});
|
||||
throw new ValidatorException(new FacesMessage(err));
|
||||
}
|
||||
if (name.indexOf('"') != -1 || name.indexOf('\\') != -1)
|
||||
{
|
||||
String err = MessageFormat.format(Application.getMessage(context, LoginBean.MSG_USER_ERR),
|
||||
new Object[]{"\", \\"});
|
||||
throw new ValidatorException(new FacesMessage(err));
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -77,7 +77,7 @@ onkeyup="javascript:checkButtonState();" /><f:verbatim>
|
||||
<td><nobr></f:verbatim><h:outputText value="#{msg.export_from}:" rendered="#{NavigationBean.currentUser.admin == true}"/><f:verbatim></nobr></td>
|
||||
<td>
|
||||
</f:verbatim><h:selectOneRadio value="#{DialogManager.bean.mode}" layout="pageDirection" rendered="#{NavigationBean.currentUser.admin == true}">
|
||||
<f:selectItem itemValue="all" itemLabel="#{msg.all_spaces_root}" itemDisabled="true" />
|
||||
<%--<f:selectItem itemValue="all" itemLabel="#{msg.all_spaces_root}" itemDisabled="true" />--%>
|
||||
<f:selectItem itemValue="current" itemLabel="#{msg.current_space}" />
|
||||
</h:selectOneRadio><f:verbatim>
|
||||
</td>
|
||||
|
@@ -92,7 +92,7 @@
|
||||
</td>
|
||||
<td width="85%">
|
||||
</f:verbatim>
|
||||
<h:inputText id="name" value="#{DialogManager.bean.name}" size="35" maxlength="1024"
|
||||
<h:inputText id="name" value="#{DialogManager.bean.name}" size="35" maxlength="150"
|
||||
onkeyup="javascript:checkButtonState();" onchange="javascript:checkButtonState();" />
|
||||
<f:verbatim>
|
||||
</td>
|
||||
@@ -106,7 +106,7 @@
|
||||
</td>
|
||||
<td>
|
||||
</f:verbatim>
|
||||
<h:inputText id="description" value="#{DialogManager.bean.description}" size="35" maxlength="1024" />
|
||||
<h:inputText id="description" value="#{DialogManager.bean.description}" size="35" maxlength="500" />
|
||||
<f:verbatim>
|
||||
</td>
|
||||
</tr>
|
||||
|
Reference in New Issue
Block a user