Modifications to the People JavaScript bean to use the pluggable user name and password generators

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@9527 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Glen Johnson
2008-06-20 10:37:54 +00:00
parent e64df6ca3a
commit 95e28f3b14
2 changed files with 51 additions and 18 deletions

View File

@@ -120,6 +120,12 @@
<property name="mutableAuthenticationDao"> <property name="mutableAuthenticationDao">
<ref bean="authenticationDao"/> <ref bean="authenticationDao"/>
</property> </property>
<property name="userNameGenerator">
<ref bean="userNameGenerator"/>
</property>
<property name="passwordGenerator">
<ref bean="passwordGenerator"/>
</property>
</bean> </bean>
<bean id="sessionScript" parent="baseJavaScriptExtension" class="org.alfresco.repo.jscript.Session"> <bean id="sessionScript" parent="baseJavaScriptExtension" class="org.alfresco.repo.jscript.Session">

View File

@@ -28,6 +28,8 @@ import java.util.Set;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.security.authentication.MutableAuthenticationDao; import org.alfresco.repo.security.authentication.MutableAuthenticationDao;
import org.alfresco.repo.security.authentication.PasswordGenerator;
import org.alfresco.repo.security.authentication.UserNameGenerator;
import org.alfresco.repo.security.authority.AuthorityDAO; import org.alfresco.repo.security.authority.AuthorityDAO;
import org.alfresco.service.ServiceRegistry; import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
@@ -52,6 +54,8 @@ public final class People extends BaseScopableProcessorExtension
private AuthorityService authorityService; private AuthorityService authorityService;
private PersonService personService; private PersonService personService;
private MutableAuthenticationDao mutableAuthenticationDao; private MutableAuthenticationDao mutableAuthenticationDao;
private UserNameGenerator usernameGenerator;
private PasswordGenerator passwordGenerator;
/** /**
* Set the mutable authentication dao * Set the mutable authentication dao
@@ -103,6 +107,26 @@ public final class People extends BaseScopableProcessorExtension
this.personService = personService; this.personService = personService;
} }
/**
* Set the user name generator service
*
* @param userNameGenerator the user name generator
*/
public void setUserNameGenerator(UserNameGenerator userNameGenerator)
{
this.usernameGenerator = userNameGenerator;
}
/**
* Set the password generator service
*
* @param passwordGenerator the password generator
*/
public void setPasswordGenerator(PasswordGenerator passwordGenerator)
{
this.passwordGenerator = passwordGenerator;
}
/** /**
* Delete a Person with the given username * Delete a Person with the given username
* *
@@ -114,33 +138,36 @@ public final class People extends BaseScopableProcessorExtension
} }
/** /**
* Create a Person * Create a Person with a generated user name
* *
* @param createAccount set to 'true' to create an account for the person with a generated user name * @param createUserAccount set to 'true' to create a user account for the person with the generated user name
* and password * and password
* @return the person node (type cm:person) created or null if the person could not be created * @return the person node (type cm:person) created or null if the person could not be created
*/ */
public ScriptNode createPerson(boolean createAccount) public ScriptNode createPerson(boolean createUserAccount)
{ {
ParameterCheck.mandatory("createAccount", createAccount); ParameterCheck.mandatory("createUserAccount", createUserAccount);
// TODO glen.johnson@alfresco.com - create account with generated user name ScriptNode person = null;
// and password
String userName = null; // generate user name
char[] password = null; String userName = usernameGenerator.generateUserName();
if (createAccount)
// create person if user name does not already exist
if (!personService.personExists(userName))
{ {
// TODO glen.johnson@alfresco.com - generate user name that does not already person = createPerson(userName);
// exist
// TODO glen.johnson@alfresco.com - generate password according to some if (createUserAccount)
// password generation scheme {
// generate password
// TODO glen.johnson@alfresco.com - create user account if user name does not already exist char[] password = passwordGenerator.generatePassword().toCharArray();
mutableAuthenticationDao.createUser(userName, password);
// create account for person with generated userName and password
mutableAuthenticationDao.createUser(userName, password);
}
} }
ScriptNode person = createPerson(userName);
return person; return person;
} }