Vanilla 1 is no longer supported or maintained. If you need a copy, you can get it here.
HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.

want to be able to delete users

2

Comments

  • Mr Do,

    My host just sent me the following reply:

    "You do not have create database privileges, which is normal, but you can create tables inside your database. Did you run an installer script when you installed the forum? Typically, just uploading the files is not enough. You need to either run an installer script or edit a config file (or both). Typically, these steps are covered in the install documentation for the application. Your MySQL login is the same as the control panel login. Essentially, you have all the proper permissions to use the database you want to use, but I'm thinking the setup/install process did not complete somehow so the installer script did not create all the proper tables that it needs to get things going. I would suggest try a fresh install again, and re-run any installer scripts that are required."

    So you can see that my host (ServerLogistics) is basically saying that my server and associated permissions are just fine. They speak from experience because they support the installation of other forums and they know what is involved. So you can see they are saying that it could be a failure of the installer script. If that is the case, I can only guess it must be a bug in the installer script. I ran it from within Safari on Mac OS 10.4.8. What are your thoughts in light of this? Would the developer of Vanilla have anything to say about this?

    Please know I am totally ignorant of PHP or MySQL. I therefore haven't the faintest idea what a "LUM table" is. (My other database which you saw in the screen shot was create by someone other than myself). And I created a table in my jdwages database yesterday just by fiddling with the controls (I really didn't have any idea what I was doing -- I just went with common sense).

    Thank you!
  • the LUM_table is the name syntax of the tables you are missing. I must concur with your host and recommend you do a re-install of vanilla. its suppose to look something like this: http://alek-3d.be/db.gif (I have tons of other tables installed and a few more LUM tables because of installed add-ons, but basically thats it. the first time you run vanilla, it runs the install script. I would guess something went wrong here. I think the best thing is to reinstall following all instructions in detail, and if the same problem arises, only Mark or god can help you! :)
  • Mr Do,

    Thank you again for your advice and the screen shot. Here is exactly what I proceeded to do...

    I just downloaded Vanilla 1.1.2 using my Mac OS 10.4.8 machine. I then unzipped the archive to my computer's desktop. Next, I opened my FTP client Transmit 3.5.6 and created a new /forum2/ subdirectory. I then copied all the files and folders from the "Vanilla-1.1.2" folder on my hard disk to the /forum2/ directory I just created with Transmit. I then pulled up the Installation & Setup Help web page in Safari. I then selected the "/forum2/conf" folder in Transmit and assigned 777 permissions to the folder and 777 to both files inside the conf folder -- all other files and folders have 755 permissions assigned by default, so I left those alone.

    Up to this point, I did everything exactly as I had done in my original installation. But this time, I decided to use FireFox to run the installer script instead of Safari which I used last time (who knows if Safari was the cause of my trouble before). From Firefox 2.0.0.3, I typed my domain name followed by /forum2/. And just like the instructions say, it automatically pointed me to /forum2/setup/index.html -- the installation script. I then clicked the green text link "Click here to install..." which points to /forum2/setup/installer.php. It then shows me "Vanilla Installation Wizard (Step 1 of 3)," at which time I clicked the green "Click here to check your permissions..." link. Only a few seconds later I was presented with the "Vanilla Installation Wizard (Step 2 of 3)" page. Four mySQL fields were blank and waiting for my input.

    According to the mySQL database setup page on my host Serverlogistics, my hostname is "localhost" and so I typed "localhost" inside the "MySQL Server" field in Firefox. My database name, as we all know from looking at the screen shots I posted above, is "jdwages" so I type "jdwages" in the "MySQL Database Name" field in Firefox. Content for the MySQL "User" and "Password" fields match my FTP login, so I typed that into those fields. Lastly, I clicked the green "Click here to create Vanilla's database..." text link.

    In a few seconds, I was presented with the following error message overlaid on the "Vanilla Installation Wizard (Step 2 of 3)" page in Firefox:

    "We came across some problems while setting up Vanilla...
    It appears as though you've already got Vanilla installed. If you are attempting to upgrade your existing installation of Vanilla, you should be using the upgrade script."

    Obviously, it didn't like the fact that I did not delete off my /forum/ folder with all my hard work in it. Sooooo, I proceeded to make an offserver backup of my /forum/ directory, after which I deleted that /forum/ directory in Transmit. I then went back to Firefox and clicked on the green "Click here to create Vanilla's database..." text link again. Same error again. I guess Vanilla was built to be installed ONLY ONCE! Ack!

    Well, I then pulled up the Upgrader page. But it clearly says not to use it unless you are upgrading from 0.9.2.x, which I am not. And so, I am stuck.

    Any help you Vanilla experts can offer would be greatly appreciated.

    Thank you!
  • I am sorry for your trouble mate, but I am out of ideas. You will probably be asked to try a completely clean install if you get a hold of Mark, so I would try to get done somehow.. Also make a new discussion with a name more fitting for the problem and maybe you can get the attention of someone smarter than me :)
  • JDW - Did you backup the existing database and then drop all the existing tables from the old install before you tried to reinstall Vanilla?
  • JDWJDW New
    edited April 2007
    dhdesign, thanks for the reply.

    As I said in my post above, there never were any tables created in my database. So I had nothing to delete from mySQL. And yes, as mentioned in the discussion above, I did properly setup my database to be used with Vanilla via the Vanilla installation script.

    If someone has access to Mark, could you please flag him for me? I whispered to him 12 hours ago but he never responded. Otherwise I will need to go with another forum solution, I guess.

    I will be signing off for this evening. Fingers crossed somone can post a solution for me by tomorrow morning. Specifically: how do I uninstall so I can then perform a clean install? (Clearly, delete off the server files and having an empty mySQL database is not enough.)
  • MarkMark Vanilla Staff
    Doing it via an extension is too complex because (apparently) it created orphaned comments, discussions...

    It's not too complex, it's just bad practice - and I'm glad no-one else has gone ahead and made an extension to do it.

    Basically, when you look at a list of comments in a discussion, Vanilla is able to tell you who wrote a comment by looking that person up in the user table. If you delete the user out of that table, it will either completely hide that comment from the discussion and screw up your comment count on the discussion, or it will keep it there but display no username or icon or anything like that, and possibly even throw some kind of error as it tries to access data that has been deleted.

    Now, if you wanted to remove users who never made any comments, that's technically OK. But as far as your database is concerned, there is no benefit for deleting users. A user record takes up almost no space in your database, and it's not like you get to use the UserIDs over and over again. The db will still just keep incrementing from the last UserID up and up and up.

    Basically, if you want to delete users, it's because you have a little bit of OCD. And when it causes you problems, your OCD will go into OCDOverdrive.
  • Mark, I don't have OCD but I do like to keep things neat for other reasons.

    When I needed to delete test-users from the database, I first did a search for their comments and discussions and deleted them. A comment saying "Testing, one, two, three..." is hardly worth of being saved for posterity. Some of the functions of any software are best understood by creating test users and, actually testing it.

    I do see the need for deleting users but it is a little messy for an extension to do, my manual 2-step process works OK, it's not like it needs to be done on a regular basis.

    Posted: Wednesday, 4 April 2007 at 8:04AM

  • I want to add something here that was mentioned in another discussion concerning TOS and forum rules that one would set up for their forum. In the situation where a user demands that you delete all of his comments and discussions, what would you do? Since deleting doesn't seem to be an option because of the potential for screwing up the database, would replacing information in the database be an option? Perhaps changing all user references to user1 and then change all his/her comment and discussion text to "lorem ipsum"?
  • have one user that is used to replace deleted users as poster of comments. replace the comments of said user by the text "This comment was deleted by an administrator". Thats if you MUST delete comments, personally, i find that whole business of a user demanding that all posts be deleted to be a weak one. I would not want to be forced to delete posts. If a discussion is to be read and understood later, it needs to keep all its parts. If there are true offensive garbage that hurts everyones sensibilities, sensor it, but frankly, I would prefer to warn, then ban a user and suffix the post with "This user was banned by an administrator for the contents of this post" (or warned).
  • I've checked out a few forum's TOS and rules and would think that you would have to add a specific description concerning how you would deal with this situation. On one forum, I found that they said if a user asked for their content to be deleted, then the forum would comply. I think it would be best to CYA as best one can, not leaving anything to interpretation.
  • Mr Do,

    Now that I've solved the database problem that plagued me before, I'm back to trying out things mentioned in this thread.

    I followed your advice above (2nd paragraph) and was able to delete users quite easily. Of course, this doesn't delete everything that the user left behind (i.e., their posts), but I honestly don't see a need to delete posts, even if I ultimately banned a user and then deleted that same user.

    Thanks again!
  • if you MUST delete, sql would be : DELETE FROM LUM_User WHERE UserID='66';
    On my forum, to get a user completely removed, I would have to do this sql on all of the following tables:
    • LUM_ToDo
    • LUM_User
    • LUM_UserBookmark
    • LUM_UserDiscussionWatch
    • LUM_UserRoleHistory
    • LUM_Attachment
    • LUM_CategoryBlock

    And if you want to remove comments and discussions, thats a hornets nest, but I think you should install the remove comment add on, as I assume the author has done more research than I can be bothered to, about how that works. :)
  • What if someone were to write an extension that would simply prevent banned users from appearing in the user list? For test accounts you don't typically write a lot of posts anyway, so deleting the posts the long way by finding them in threads is still feasible.
  • I WISH there was an add-on that would delete a user. My forum is plagued with individuals who sign up, then never return (sometimes after posting a single comment and not even returning to see if there were any responses). I wish to frig i could easily delete them.
  • i could possibly make an add-on that hid users from search list, but deleting outright looks to be too much hassle :/
  • Deleting users should be part of the Vanilla core, to be honest. While I greatly agree with the "hide, don't delete" mentality*, there are some VERY good reasons to add this:
    1. While, yeah, a userdb will probably never be larger than 100MB, that starts to stack up when you keep regular backups
    2. A minor point, but each less row in a db means faster lookups -- if a vanilla site was adopted by a million+ member site, it'd be very important.
    3. Having defunct data in a database poisons the data pool for doing stats and other fun stuff.
    4. The cited example TOS situation is a pretty good reason for being able to delete not only users, but comments/discussions too. I come across this a lot in my job and it is a reality.
    5. Finally, and most importantly, if you have Personally Identifying Information (pii) in your system about a user who is under 13 years old, the government can and will put you in prison. So, in cases like that it's a nice thing to be able to wipe that user out.
    * I even added it to Punbb, phew!
  • yes, I don't want to hide, I want to delete. And by deleting the type of person that i want gone, e.g. I have so many who sign up once and never return, I won't be ruining old archived threads/discussions.
  • I must agree that for a forum, deleting users is an OCD condition. However, I use Vanilla as a framework for many types of sites, since I've found it's probably the best code out there for managing users, registrations, and content submitted from users. Requires little modification to make a completely different site. My clients are ALWAYS complaining about the need to delete users, and I'm inclined to agree that the functionality should be there, at least in the user object model if not in the forum software, such that extensions can be made and people like me can add the functionality in easily. As an example, one site is an online website for an offline society, and has polls, fee payment, personal information management, things like that. When a member goes defunct, they currently get "banned" status. However, they still show up on member lists and in searches. So, the client wants to be able to delete the ones they know are not going to return (why waste a spot in member lists and searches for someone who's never coming back?). In this particular case, the forum component is only used for polls and announcements, so I can merely delete the user with no consequence. However, even if a forum is used, what's wrong with replacing a (null) user with "Deleted User" or even leaving it blank, or something to that effect?
  • davidh,
    I would have to agree with you on this point. UserManager has a RemoveApplicant function that actually performs a delete... and it does check for other data in the database that may belong to that user, so it could be a good starting point.

    As far as hiding a role from the user search, you could do something like this:

    Function BlockUserRoleFromSearch(&$UserManager) { $s = &$Context->DelegateParameters['SqlBuilder']; $s->AddWhere('u', 'RoleID', '', 999, '<>', 'and'); } $Context->AddToDelegate('UserManager', 'PreDefineSearch', 'BlockUserRoleFromSearch');Where 999 is the role you wish to block. I haven't tested this, so expect an syntax error somewhere.
Sign In or Register to comment.