User modify algorithm


{ Lock the user }
{ <Update User>
     <Update single value attributes, i.e. def. 'domain', 'all_objects?' etc.>

     <Update Groups>
          for each groups.to.insert
               insert group
          done
          for each group.to.delete
               delete group
          done

     <Update Departments>
          for each departement.to.insert
               insert department
          done
          for each departement.to.delete
               delete department
          done
          for each department.to.keep
               if old.department.flag.official? != new.department.flag.official?
                    update department
               fi
          done

     <Update Records>
          for each record.to.insert
               insert record
          done
          for each record.to.delete
               delete record
          done

     <Do Check>
}