Les dejo este script que permite retornar todos los usuarios de todos los grupos de un sitio. Incluye algunos detalles como:
- Máximo de grupos
- Grupos que comienzan con un prefijo
- Formato HTML
Está basado en el siguiente artículo de MSDN que les recomiendo: http://msdn.microsoft.com/en-us/library/office/hh185012(v=office.14).aspx
Código:
<script type="text/javascript">
ExecuteOrDelayUntilScriptLoaded(retrieveAllUsersAllGroups, "sp.js");
function retrieveAllUsersAllGroups() {
var clientContext = new SP.ClientContext.get_current();
this.collGroup = clientContext.get_web().get_siteGroups();
clientContext.load(collGroup, 'Include(Title,Id,Users.Include(Title,LoginName))');
this.collGroup = clientContext.get_web().get_siteGroups();
clientContext.load(collGroup, 'Include(Title,Id,Users.Include(Title,LoginName))');
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
function onQuerySucceeded() {
this.userInfo = '<style>.mitabla td {border: solid blue 1px;}</style><table class="mitabla"><tr><td>Grupo<td>Usuario</td><td>Cuenta</td></tr>';
// Top de Grupos
var primeros = 500;
var i = 1;
var primeros = 500;
var i = 1;
var groupEnumerator = collGroup.getEnumerator();
while (groupEnumerator.moveNext() && i <= primeros ) {
i += 1;
var oGroup = groupEnumerator.get_current();
var collUser = oGroup.get_users();
var userEnumerator = collUser.getEnumerator();
while (groupEnumerator.moveNext() && i <= primeros ) {
i += 1;
var oGroup = groupEnumerator.get_current();
var collUser = oGroup.get_users();
var userEnumerator = collUser.getEnumerator();
while (userEnumerator.moveNext()) {
var oUser = userEnumerator.get_current();
// Condición de prefijo de nombre de grupo
if ( oGroup.get_title().substr(0,2) == "AF" ) {
this.userInfo += '<tr><td>' + oGroup.get_title() + '</td><td>' + oUser.get_title() + '</td><td>' + oUser.get_loginName() + '</td></tr>';
}
}
}
this.userInfo += '</table>';
document.write(this.userInfo);
}
this.userInfo += '</table>';
document.write(this.userInfo);
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());
}
}
</script>
0 comentarios:
Publicar un comentario