mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-31 17:39:05 +00:00
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:
@@ -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">
|
||||||
|
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user