Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: modules/discourse/manifests/admin.pp

Issue 9351210: Define Discourse admins and site settings in Puppet, separate private data from other settings (Closed)
Patch Set: Created Feb. 19, 2013, 3:08 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 define discourse::admin(
2 $email = $title,
3 $ensure = 'present'
4 ) {
5 # Attempt some escaping
6 $escaped_email = regsubst($email, '[\'\\]', '\\\1', 'G')
7
8 case $ensure {
9 default: {
10 err("unknown ensure value ${ensure}")
11 }
12 present: {
13 # Only confirmed accounts should be made admins
14 postgresql_psql {"UPDATE users SET admin = true WHERE email = '$escaped_em ail' AND EXISTS (SELECT * FROM email_tokens WHERE email_tokens.user_id = users.i d AND email_tokens.email = users.email AND email_tokens.confirmed)":
15 db => 'discourse',
16 psql_user => 'discourse',
17 unless => 'SELECT false'
18 }
19 }
20 absent: {
21 postgresql_psql {"UPDATE users SET admin = false WHERE email = '$escaped_e mail'":
22 db => 'discourse',
23 psql_user => 'discourse',
24 unless => 'SELECT false'
25 }
26 }
27 }
28 }
OLDNEW

Powered by Google App Engine
This is Rietveld