diff options
-rw-r--r-- | etc/wydawca.rc | 86 | ||||
-rw-r--r-- | src/config.c | 4 | ||||
-rw-r--r-- | src/mail.c | 2 |
3 files changed, 43 insertions, 49 deletions
diff --git a/etc/wydawca.rc b/etc/wydawca.rc index 378e9ac..de7ab0b 100644 --- a/etc/wydawca.rc +++ b/etc/wydawca.rc @@ -14,30 +14,34 @@ You should have received a copy of the GNU General Public License along with wydawca. If not, see <http://www.gnu.org/licenses/>. */ -# Configure logging via syslog. -# For more info, run `info wydawca syslog'. +/* Configure logging via syslog. + For more info, run `info wydawca syslog'. + */ syslog { facility local1; tag wydawca; print-priority yes; } -# Enable statistics output at the end of the run. -# For more info, run `info wydawca statistics'. +/* Enable statistics output at the end of the run. + For more info, run `info wydawca statistics'. + */ statistics all; -# Remove any stray files that are more than an hour old. +/* Remove any stray files that are more than an hour old. */ file-sweep-time "1 hour"; -# Set default umask +/* Set default umask. */ umask 022; -# Set the name of the tar binary. This is optional. -# See `info wydawca archivation', for more info. +/* Set the name of the tar binary. This is optional. + See `info wydawca archivation', for more info. + */ tar-program "/bin/tar"; -# Configure SQL databases. -# See `info wydawca sql'. +/* Configure SQL databases. + See `info wydawca sql'. + */ sql default { host "localhost:/tmp/mysql.sock"; database "savane"; @@ -45,13 +49,12 @@ sql default { password "guessme"; } -############################################################################# -# Configure access methods. -# Run `info wydawca access', for the detailed description of these. -# The provided ones use Savane database structure. -############################################################################# +/* Configure dictionaries. + Run `info wydawca dictionaries', for the detailed description of these. + The provided ones use Savane database structure. + */ -access-method project-owner { +dictionary project-owner { type sql; params (default); query "SELECT user.email, user.realname " @@ -59,36 +62,26 @@ access-method project-owner { "WHERE user_group.user_id=user.user_id " "AND user_group.group_id=groups.group_id " "AND user_group.admin_flags = 'A' " - "AND groups.unix_group_name='$p'"; + "AND groups.unix_group_name='${project}'"; } -access-method user-data { - type sql; - params (default); - query "SELECT email, realname FROM user WHERE user_name='${user}'"; -} - -access-method verify-user { - type sql; - params (default); - query "SELECT user.user_name " - "FROM user,user_group, groups " - "WHERE user_group.user_id=user.user_id " - "AND user_group.group_id=groups.group_id " - "AND user_group.admin_flags = 'A' " - "AND groups.unix_group_name='$p' AND user.user_name='$u'"; -} -access-method gpg-key { +/* Only project admins are allowed to make uploads. */ +dictionary project-uploader { type sql; + query "SELECT user.user_name,user.realname,user.email,user.gpg_key " + "FROM user,user_group,groups " + "WHERE user_group.user_id=user.user_id " + "AND user_group.group_id=groups.group_id " + "AND user_group.admin_flags = 'A' " + "AND groups.unix_group_name='${project}' " + "AND user.gpg_key is not NULL"; params (default); - query "SELECT gpg_key FROM user WHERE user_name='$u'"; } - -############################################################################# -# Configure email notifications -# See `info wydawca notification', for an explanation. -############################################################################# + +/* Configure email notifications + See `info wydawca notification', for a description. + */ admin-address "root@localhost"; from-address "wydawca@localhost"; @@ -283,13 +276,12 @@ The Project Submission Robot EOT; } -############################################################################# -# Configure distribution spools. -# A spool defines where to look for input triplets, and where to -# copy uploaded files. -# -# See `info wydawca spool', for a detailed explanation. -############################################################################# +/* Configure distribution spools. + A spool defines where to look for input triplets, and where to + copy uploaded files. + + See `info wydawca spool', for a detailed explanation. + */ spool download { url ftp://your.domain.net; diff --git a/src/config.c b/src/config.c index c3b2e22..0c681ac 100644 --- a/src/config.c +++ b/src/config.c @@ -165,7 +165,7 @@ ARGMATCH_VERIFY (event_args, event_types); const char * notification_event_str (enum notification_event evt) { - return event_args[evt]; + return ARGMATCH_TO_ARGUMENT ((char*)&evt, event_args, event_types); } int @@ -203,7 +203,7 @@ ARGMATCH_VERIFY (target_args, target_types); const char * notification_target_str (enum notification_target tgt) { - return target_args[tgt]; + return ARGMATCH_TO_ARGUMENT ((char*)&tgt, target_args, target_types); } int @@ -480,6 +480,8 @@ get_uploader_email (struct uploader_info *info, struct file_triplet *trp, mu_address_t rcpt = NULL; int rc; + if (!info) + return NULL; rc = mu_address_create (&addr, info->email); if (rc) { |