Commit Graph

24 Commits (4ff37b836969ca99c8ac662199a7ea473808fc96)

Author SHA1 Message Date
Lorin Hochstein a9dfc40c51 Add documentation about PUBLIC user 12 years ago
Lorin Hochstein 6952d16979 postgresql_user: Add support for PUBLIC
This change enables users to add and remove permissions to all roles,
using the PUBLIC user. This is equivalent to using the PUBLIC keyword
in GRANT and DENY postgres SQL commands.

For example, see: <http://www.postgresql.org/docs/current/interactive/sql-grant.html>

Fixes #1833
12 years ago
Félix Sipma 329b2c63d9 remove quotes in has_table_privilege and has_database_privilege 12 years ago
Félix Sipma cc4be53dd4 use double-quotes in postgresql commands (fix bug with "-") 12 years ago
Daniel Hokka Zakrisson 686d5440ce Select all fields from the user, as some of them are version-dependent 12 years ago
Jan-Piet Mens d184f72aa9 DOCUMENTATION strings 12 years ago
Michael DeHaan 6f6559670f chmod -x for all module files in source checkout 12 years ago
Michael DeHaan 8d3f73d562 pep8 fixes 12 years ago
Jan-Piet Mens d069c57974 Reformat code: examples consistently
- added terse syntax to modules.rst
 - added description of special variables to template module
12 years ago
Michael DeHaan 565688dea2 Added 'script', a module that can push and insantly run a remote script. Replaces the need to copy+command.
This is a bit of a rough draft, some error handling still needs to be added.
12 years ago
Jeremiah Heller e99c12460b add role_attr_flags parameter to postgresql_user
Pass role_attr_flags a list of comma separated role
attributes when creating or updating a user.
12 years ago
Jan-Piet Mens eef198144f DOCUMENTATION for fetch,mount,ohai,easy_install
- .rst now supresses default if none is set (looks better in HTML)
  - .rst now handles empty options list
  - Fixed postgresql_user and mysql_user because YAML contained colons
  - docs for facter
12 years ago
Marco Vito Moscaritolo babb2454c6 Added DOCUMENTATION to postgresql_user module. 12 years ago
Lorin Hochstein 9eb12a2b81 Fix postgresql_user bug
If I create a database from scratch and assign permissions by doing:

      - name: ensure database is created
        action: postgresql_db db=$dbname

      - name: ensure django user has access
        action: postgresql_user db=$dbname user=$dbuser priv=ALL password=$dbpassword

Then it fails with the error:

  File "/tmp/ansible-1347048449.32-29998829936529/postgresql_user", line 565, in <module>
    main()
  File "/tmp/ansible-1347048449.32-29998829936529/postgresql_user", line 273, in main
    changed = grant_privileges(cursor, user, privs) or changed
  File "/tmp/ansible-1347048449.32-29998829936529/postgresql_user", line 174, in grant_privileges
    changed = grant_func(cursor, user, name, privilege)\
  File "/tmp/ansible-1347048449.32-29998829936529/postgresql_user", line 132, in grant_database_privilege
    prev_priv = get_database_privileges(cursor, user, db)
  File "/tmp/ansible-1347048449.32-29998829936529/postgresql_user", line 118, in get_database_privileges
    r = re.search('%s=(C?T?c?)/[a-z]+\,?' % user, datacl)
  File "/usr/lib/python2.7/re.py", line 142, in search
    return _compile(pattern, flags).search(string)
TypeError: expected string or buffer

This fix fixes the problem by not executing the regex if the
db query on pg_database returns None.
12 years ago
Piotr Kweclich 41fde07e98 added support for custom port definition 12 years ago
Pepe Barbe 9e275529d6 Typo 12 years ago
Pepe Barbe 511ab8697c Query for all active privileges instead
Use a different method to query for current 
privileges at the table and database level. 
This method is more robust if newer privileges 
are added in future versions and also supports the 
ALL wildcard.
12 years ago
Pepe Barbe a7e1ca6a6f Add fail_on_user option
fail_on_user option can be used to ignore silently
if the user cannot be removed because of remaining
privilege dependencies to other objects in the 
database. By default it will fail, so that this new 
behavior won't surprise unsuspecting users.
12 years ago
Pepe Barbe 384839bfe1 Initial commit of change of semantics for module
The postgresql_user module has several drawbacks:
* No granularity for privileges
* PostgreSQL semantics force working on one
  database at time, at least for Tables. Which
  means that a single call can't remove all the 
  privileges for a user, and a user can't be
  removed until all the privileges are removed, 
  forcing a module failure with no way to 
  work around the issue.

Changes:
* Added the ability to specify granular privileges
  for database and tables within the database
* Report if user was removed, and add an option to 
  disable failing if user is not removed.
12 years ago
Pepe Barbe 35e27fe1b2 Syntax change to make module compatible with Python 2.4 12 years ago
Michael DeHaan baacde6c74 Add encoding lines to python modules such that they can take unicode options if they are fed them, since the
AnsibleModule stuff no longer base64 encodes for simplicity and speed reasons.
12 years ago
Michael DeHaan fe9a05f492 Module consistency and make daisy chaining work with invalid arguments detection. 12 years ago
Lorin Hochstein ac02b85aad Use standard argument names in PostgreSQL modules
passwd -> password
loginpass -> login_password
loginuser -> login_user
loginhost -> login_host

Add an example playbook that shows how to use the modules.
12 years ago
Lorin Hochstein ed9227f406 Add postgresql_db and postgresql_user module.
These modules are based on the mysql_db and mysql_user modules.

Currently, the postgresql_user module can only grant all permissions
on a database, fine-grained access has not been implemented yet.
12 years ago