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