Beispiel #1
0
void Element::setUsers( UserList ul )
{
	if (!isRecord())
		return;

	UserList toAdd;
	UserList toRemove;

	UserList currentUsers = users();

	foreach( User emp, ul )
		if( !currentUsers.contains( emp ) )
			toAdd += emp;

	foreach( User eu, currentUsers )
		if( !ul.contains( eu ) )
			toRemove += eu;

	ElementUserList tul = ElementUser::recordsByElement( *this );
	foreach( ElementUser eu, tul )
		if( toRemove.contains( eu.user() ) )
			eu.remove();

	foreach( User emp, toAdd )
	{
		ElementUser tu;
		tu.setElement( *this );
		tu.setUser( emp );
		tu.setActive( 1 );
		tu.commit();
	}