wiki:UserManagerPlugin

Manage users and teams

Description

This plugin provides a simple, standard way for teams to manage the resources on the team. While trac.admin provides too many places to set up one user, this plugin provides one single page where a project admin can setup all things related to one user.

Key features:

  • helps managing users (profiles, permissions, authentication (based on AccountManagerPlugin), and any other things based on this plugin's extension points)
  • provides filterable team rosters based on user profiles (+ custom fields)

Note: This plugin is the next step of TeamRosterPlugin. To use UserManagerPlugin disable TeamRosterPlugin, in case you have it enabled. UserManagerPlugin is for ~90% compatible with data managed by TeamRosterPlugin, so switching from TeamRosterPlugin to UserManagerPlugin is safe (no data loss).

Bugs/Feature Requests

Existing bugs and feature requests for UserManagerPlugin are here.

If you have any issues, create a new ticket.

defect

14 / 30

enhancement

4 / 17

task

2 / 2

Download

Download the zipped source.

Source

Check out from the subversion repository, or browse the source with Trac.

Installation

General instructions on installing Trac plugins can be found on the TracPlugins page.

Install the plugin, for example for Trac 0.11: easy_install https://trac-hacks.org/svn/usermanagerplugin/0.11

Configuration

Add the following lines to your trac.ini file:

[components]
tracusermanager.* = enabled

[um_profile-custom]
office = select
office.cols = 20
office.label = Office
office.options = |Bucharest|Boston|San Francisco|New York
office.order = 1

bio = wikitext
bio.cols = 70
bio.rows = 10
bio.label = Bio
bio.order = 2

gim = text
gim.cols = 20
gim.label = Gmail
gim.order = 3

yim = text
yim.cols = 20
yim.label = Yahoo
yim.order = 4

tags = multichecks
tags.label = Tags
tags.options = developer|qa|pm|ux
tags.order = 5

Note: If you also have AccountManagerPlugin installed, you may want to disable its admin interface, so you don't have two 'Users' entries in the Admin Accounts section:

[components]
acct_mgr.admin.accountmanageradminpanel = disabled  # AccountManager < 0.5
acct_mgr.admin.useradminpanel = disabled  # AccountManager >= 0.5

API

from tracusermanager.api import UserManager, User

# Get user by id(username)
user = UserManager(env).get_user( "cbalan" )

# Get active users
team = UserManager(env).get_active_users()
for user in team:
    print user.username
    print user['email']
    print user['bio']

# Search users ( Dummy example: All active developers that have an gmail account )
search_result_list = UserManager(env).search_users(User(role="developer", email="%gmail.com"))
for user in search_result_list:
    print user.username
    print user['role']

# Create new user
UserManager(self.env).create_user(User(username="cbalan", name="Catalin Balan", email="cbalan@optaros.com"))

# Update
user = UserManager(self.env).get_user('cbalan')
user['bio'] = """Maecenas ut mauris. Morbi congue nunc ut tortor. Pellentesque molestie cursus enim. 
Praesent gravida consequat mauris. Nulla cursus cursus magna. 
Sed libero. Integer dapibus urna in mauris. 

Fusce fringilla: 
 - Mauris ipsum mauris, semper at, lacinia ultrices, pellentesque eget, arcu. 
 - Etiam vel enim et nunc luctus gravida. Morbi suscipit scelerisque odio. 
 - Mauris porta. 

Nullam dui. Nullam egestas, massa eu condimentum mattis, enim ipsum tincidunt purus, 
vitae vestibulum sapien eros vitae libero.
"""
user.save()

# Remove
UserManager(env).delete_user(user)

Macro

[[UserProfilesList]]                                  # Without arguments returns current active user profiles
[[UserProfilesList(role=developer)]]                  # Returns all userProfiles with role='developer' 
[[UserProfilesList(NOT_role=developer)]]              # Returns all userProfiles with NOT role=developer
[[UserProfilesList(name=%someName%)]]                 # Returns all userProfiles with name like 'someName' 
[[UserProfilesList({id=cbalan},{role=%arh%})]]        # Returns cbalan's profile and user profiles with role='%arh%' 
[[UserProfilesList(|class=someCSS_Class, style=border:1px solid green;padding:12px)]] # Adds style and class attributes to box layout     

Screenshots

admin.profileadmin.permissions
admin.autenticationadmin.profile.customfields
userprofileslist macroadmin

Questions

  • Could you explain the interface?
  • What's the difference between 'Users' and 'External Users'?
  • Some of the screen shots seem like they might be out of date.

Recent Changes

14555 by rjollos on 2015-04-20 22:40:35
tag_svn_revision is not supported in setuptools ≥ 10.
13677 by rjollos on 2014-02-19 12:52:39
Fixed indentation and trimmed whitespace using reindent.py.
12293 by rjollos on 2012-11-03 22:04:18
Refs #10586: Part of [12286]. Removed unused variable.
(more)

Author/Contributors

Author: cbalan
Maintainer: Ryan J Ollos
Contributors: hasienda

Last modified 6 weeks ago Last modified on Aug 20, 2016, 1:41:13 AM

Attachments (6)

Download all attachments as: .zip