8

We have some users that have left the company and we have suspended their e-mail address, but trac continues to send notifications to these addresses. How can I remove the e-mail address from their trac profile?

EEAA
  • 108,414
  • 18
  • 172
  • 242
g .
  • 256
  • 2
  • 5

3 Answers3

8

No plugins necessary, if you're comfortable with the command line. TracAdmin is your friend.

List the name and email for the given sids (username):

trac-admin /usr/local/share/trac/test session list

SID      Auth  Last Visit  Name            Email            
------------------------------------------------------------
bob      1     1970-01-01  Bob Smith       bob@bob.com

where /usr/local/share/trac/test is the path to your project.

Now just send the empty string to clear their email address:

trac-admin /usr/local/share/trac/test session set email bob ""

Check that it worked:

trac-admin /usr/local/share/trac/test session list

SID      Auth  Last Visit  Name            Email            
------------------------------------------------------------
bob      1     1970-01-01  Bob Smith                        

Need to set it to something else? No problem:

trac-admin /usr/local/share/trac/test session set email bob "bob@bob.com"

trac-admin /usr/local/share/trac/test session list

SID      Auth  Last Visit  Name            Email            
------------------------------------------------------------
bob      1     1970-01-01  Bob Smith       bob@bob.com 
3

You could go into the database and update the record:

 DELETE FROM session_attribute WHERE name = 'email' AND value = 'email@example.com';

If you're using sqlite, it would be something like "sqlite3 trac.db", where trac.db is under your trac directory somewhere.

In addition, in trac.ini there are settings for automatically emailing changes and tickets.

always_notify_owner = true
always_notify_reporter = true
always_notify_updater = true

If the person is still on tickets as one of those three, they will continue to get emails if the trac username is the first part of their email address and the setting "smtp_default_domain" matches the domain part.

Gavin M. Roy
  • 331
  • 3
  • 5
2

Another approach that I found is to use the UserManagerPlugin. The "User Session Management" provides the functionality to remove old users from the system.

After installing the plugin,

  1. Select Admin -> Users -> Session Management
  2. Tick the boxes of the users to be removed and click 'Delete Selected'
g .
  • 256
  • 2
  • 5