Sounds like you must do it by custom module. For blocking user, use db api and just change status column (users table) value to 0. Similar things is for unpublish selected user content. All you need is in node table. So you need two UPDATE statement for this job. That's all. BTW. Do you try [mollom][1] for anti-spam? You can specify any form to work with mollom. Maybe you can configure this module to work with logged in users. If mollom can do this job, just try find any hook that allow you block user when spam is detected. [1]: http://drupal.org/project/mollom/