Al intentar acceder a la wiki de un proyecto alojado en un servidor Trac, me encontré con el siguiente mensaje de error:

WIKI_VIEW privileges are required to perform this operation on WikiStart. You don't have the required permissions.

Básicamente significa que el usuario actual no tiene permisos para acceder a la Wiki. Este artículo demuestra cómo gestionar permisos de acceso (autorización) a un sistema Trac desde línea de comandos.

Trac es un sistema de gestión de proyectos y seguimiento de incidentes (tickets) orientado a la Web y open source, que se integra con los sistemas de control de versiones más utilizados como Subversion y Git. Está desarrollado en lenguaje Python y además de todas sus características incorpora una wiki para documentar.

Este sistema de gestión es utilizado por importantes empresas y copañías entre las que se destacan la Internet Research Task Force, Django, FFmpeg, jQuery UI, OpenStreetMap, WebKit, 0 A.D. y WordPress.

Trac incluye una poderosa herramienta de configuración de línea de comandos: trac-admin. Esta permite personalizar una instalación de Trac. Por supuesto, algunas de las funcionalidades que provee pueden también ser realizadas vía Web a través del módulo de administración.

Cada comando de trac-admin debe ser precedido por el entorno de Trac donde se desea ejecutar. Esto es, la ruta a la instalación de Trac. Veamos entonces cómo realizar tareas de gestión de permisos en Trac (subcomando permission).

Listar permisos

Para listar los permisos sobre una instancia de Trac, recurrir al subcomando permission list:

trac@trac:~$ trac-admin /usr/local/trac/linuxito permission list

usuario   Acción
------------------------------
juantopo  usuario
krusty    TRAC_ADMIN
admin     TRAC_ADMIN
usuario   BROWSER_VIEW
usuario   CHANGESET_VIEW
usuario   CONFIG_VIEW
usuario   EMAIL_VIEW
usuario   FILE_VIEW
usuario   LOG_VIEW
usuario   MILESTONE_ADMIN
usuario   REPORT_ADMIN
usuario   ROADMAP_ADMIN
usuario   SEARCH_VIEW
usuario   TICKET_ADMIN
usuario   TIMELINE_VIEW
usuario   VERSIONCONTROL_ADMIN
usuario   WIKI_ADMIN


Accciones disponibles
 ACCTMGR_ADMIN, ACCTMGR_CONFIG_ADMIN, ACCTMGR_USER_ADMIN, BROWSER_VIEW,
 CHANGESET_VIEW, CONFIG_VIEW, EMAIL_VIEW, FILE_VIEW, LOG_VIEW,
 MILESTONE_ADMIN, MILESTONE_CREATE, MILESTONE_DELETE, MILESTONE_MODIFY,
 MILESTONE_VIEW, PERMISSION_ADMIN, PERMISSION_GRANT, PERMISSION_REVOKE,
 REPORT_ADMIN, REPORT_CREATE, REPORT_DELETE, REPORT_MODIFY,
 REPORT_SQL_VIEW, REPORT_VIEW, ROADMAP_ADMIN, ROADMAP_VIEW, SEARCH_VIEW,
 STATS_VIEW, TICKET_ADMIN, TICKET_APPEND, TICKET_BATCH_MODIFY,
 TICKET_CHGPROP, TICKET_CREATE, TICKET_EDIT_CC, TICKET_EDIT_COMMENT,
 TICKET_EDIT_DESCRIPTION, TICKET_MODIFY, TICKET_VIEW, TIMELINE_VIEW,
 TRAC_ADMIN, USER_VIEW, VERSIONCONTROL_ADMIN, WEEK_PLAN, WIKI_ADMIN,
 WIKI_CREATE, WIKI_DELETE, WIKI_MODIFY, WIKI_RENAME, WIKI_VIEW, XML_RPC

De este listado se observa que el usuario "juantopo" posee el rol "usuario", y los usuarios "krusty" y "admin" tienen el rol TRAC_ADMIN. A su vez, el rol "usuario" posee los siguientes permisos: BROWSER_VIEW, CHANGESET_VIEW, CONFIG_VIEW, EMAIL_VIEW, FILE_VIEW, LOG_VIEW, MILESTONE_ADMIN, REPORT_ADMIN, ROADMAP_ADMIN, SEARCH_VIEW, TICKET_ADMIN, TIMELINE_VIEW, VERSIONCONTROL_ADMIN y WIKI_ADMIN.

Agregar permisos a un usuario específico

Para agregar un nuevo permiso se debe recurrir al subcomando permission ad. Por ejemplo, para que el usuario "emiliano" tenga el rol TRAC_ADMIN, ejecutar:

trac@trac:~$ trac-admin /usr/local/trac/linuxito permission add emiliano TRAC_ADMIN

La nueva configuración de permisos queda como se muestra a continuación:

trac@trac:~$ trac-admin /usr/local/trac/linuxito permission list

usuario   Acción
------------------------------
emiliano  TRAC_ADMIN
juantopo  usuario
krusty    TRAC_ADMIN
admin     TRAC_ADMIN
usuario   BROWSER_VIEW
usuario   CHANGESET_VIEW
usuario   CONFIG_VIEW
usuario   EMAIL_VIEW
usuario   FILE_VIEW
usuario   LOG_VIEW
usuario   MILESTONE_ADMIN
usuario   REPORT_ADMIN
usuario   ROADMAP_ADMIN
usuario   SEARCH_VIEW
usuario   TICKET_ADMIN
usuario   TIMELINE_VIEW
usuario   VERSIONCONTROL_ADMIN
usuario   WIKI_ADMIN


Accciones disponibles
 ACCTMGR_ADMIN, ACCTMGR_CONFIG_ADMIN, ACCTMGR_USER_ADMIN, BROWSER_VIEW,
 CHANGESET_VIEW, CONFIG_VIEW, EMAIL_VIEW, FILE_VIEW, LOG_VIEW,
 MILESTONE_ADMIN, MILESTONE_CREATE, MILESTONE_DELETE, MILESTONE_MODIFY,
 MILESTONE_VIEW, PERMISSION_ADMIN, PERMISSION_GRANT, PERMISSION_REVOKE,
 REPORT_ADMIN, REPORT_CREATE, REPORT_DELETE, REPORT_MODIFY,
 REPORT_SQL_VIEW, REPORT_VIEW, ROADMAP_ADMIN, ROADMAP_VIEW, SEARCH_VIEW,
 STATS_VIEW, TICKET_ADMIN, TICKET_APPEND, TICKET_BATCH_MODIFY,
 TICKET_CHGPROP, TICKET_CREATE, TICKET_EDIT_CC, TICKET_EDIT_COMMENT,
 TICKET_EDIT_DESCRIPTION, TICKET_MODIFY, TICKET_VIEW, TIMELINE_VIEW,
 TRAC_ADMIN, USER_VIEW, VERSIONCONTROL_ADMIN, WEEK_PLAN, WIKI_ADMIN,
 WIKI_CREATE, WIKI_DELETE, WIKI_MODIFY, WIKI_RENAME, WIKI_VIEW, XML_RPC

Ayuda de trac-admin

Para más información, es posible recurrir a la ayuda del comando trac-admin. Siempre es necesario indicar la ruta a la instalación:

trac@trac:~$ trac-admin /usr/local/trac/linuxito help
trac-admin - La consola de administración de Trac 1.2.2

Uso: trac-admin  [orden [suborden] [opción ...]]

Si invoca trac-admin sin una orden inicia el mismo en modo interactivo.

help                 Show documentation
initenv              Create and initialize a new environment
attachment add       Attach a file to a resource
attachment export    Export an attachment from a resource to a file or stdout
attachment list      List attachments of a resource
attachment remove    Remove an attachment from a resource
changeset added      Notify trac about changesets added to a repository
changeset modified   Notify trac about changesets modified in a repository
component add        Add a new component
component chown      Change component ownership
component list       Show available components
component remove     Remove/uninstall a component
component rename     Rename a component
config get           Get the value of the given option in "trac.ini"
config remove        Remove the specified option from "trac.ini"
config set           Set the value for the given option in "trac.ini"
deploy               Extract static resources from Trac and all plugins
hotcopy              Make a hot backup copy of an environment
milestone add        Add milestone
milestone completed  Set milestone complete date
milestone due        Set milestone due date
milestone list       Show milestones
milestone remove     Remove milestone
milestone rename     Rename milestone
permission add       Add a new permission rule
permission export    Export permission rules to a file or stdout as CSV
permission import    Import permission rules from a file or stdin as CSV
permission list      List permission rules
permission remove    Remove a permission rule
priority add         Add a priority value option
priority change      Change a priority value
priority list        Show possible ticket priorities
priority order       Move a priority value up or down in the list
priority remove      Remove a priority value
repository add       Add a source repository
repository alias     Create an alias for a repository
repository list      List source repositories
repository remove    Remove a source repository
repository resync    Re-synchronize trac with repositories
repository set       Set an attribute of a repository
repository sync      Resume synchronization of repositories
resolution add       Add a resolution value option
resolution change    Change a resolution value
resolution list      Show possible ticket resolutions
resolution order     Move a resolution value up or down in the list
resolution remove    Remove a resolution value
session add          Create a session for the given sid
session delete       Delete the session of the specified sid
session list         List the name and email for the given sids
session purge        Purge anonymous sessions older than the given age or date
session set          Set the name or email attribute of the given sid
severity add         Add a severity value option
severity change      Change a severity value
severity list        Show possible ticket severities
severity order       Move a severity value up or down in the list
severity remove      Remove a severity value
ticket remove        Remove ticket
ticket_type add      Add a ticket type
ticket_type change   Change a ticket type
ticket_type list     Show possible ticket types
ticket_type order    Move a ticket type up or down in the list
ticket_type remove   Remove a ticket type
upgrade              Upgrade database to current version
version add          Add version
version list         Show versions
version remove       Remove version
version rename       Rename version
version time         Set version date
wiki dump            Export wiki pages to files named by title
wiki export          Export wiki page to file or stdout
wiki import          Import wiki page from file or stdin
wiki list            List wiki pages
wiki load            Import wiki pages from files
wiki remove          Remove wiki page
wiki rename          Rename wiki page
wiki replace         Replace the content of wiki pages from files (DANGEROUS!)
wiki upgrade         Upgrade default wiki pages to current version

La lista completa de privilegios está detallada en la página AvailablePrivileges - The Trac Project.

Referencias


Tal vez pueda interesarte


Compartí este artículo