summaryrefslogtreecommitdiff
path: root/gitano-admin/rules/defines.lace
diff options
context:
space:
mode:
authorDaniel Silverstone <daniel.silverstone@codethink.co.uk>2012-09-07 14:29:43 +0100
committerDaniel Silverstone <daniel.silverstone@codethink.co.uk>2012-09-07 14:29:43 +0100
commitfb652434121c382fc622845ec714c2a14f2fde58 (patch)
tree5454fa43967ebb883173057c5f45fb318b818824 /gitano-admin/rules/defines.lace
parent860ec2f6436ac7cba31969ab13f163c9fbe691d6 (diff)
downloadtrove-setup-fb652434121c382fc622845ec714c2a14f2fde58.tar.gz
Initial ruleset and beginnings of gitano-admin overlay
Diffstat (limited to 'gitano-admin/rules/defines.lace')
-rw-r--r--gitano-admin/rules/defines.lace82
1 files changed, 82 insertions, 0 deletions
diff --git a/gitano-admin/rules/defines.lace b/gitano-admin/rules/defines.lace
new file mode 100644
index 0000000..b6df4c5
--- /dev/null
+++ b/gitano-admin/rules/defines.lace
@@ -0,0 +1,82 @@
+# A useful set of defines
+
+# User/group related
+define is_admin group gitano-admin
+define is_owner owner ${user}
+
+define if_asanother as_user ~.
+
+# Self-related operations
+define op_whoami operation whoami
+define op_sshkey operation sshkey
+define op_self anyof op_whoami op_sshkey
+
+# Admin-related operations
+
+## Users
+define op_useradd operation useradd
+define op_userdel operation userdel
+define op_userlist operation userlist
+define op_useremail operation useremail
+define op_username operation username
+define op_user anyof op_userlist op_useradd op_userdel op_useremail op_username
+
+## Groups
+define op_grouplist operation grouplist
+define op_groupshow operation groupshow
+define op_groupadd operation groupadd
+define op_groupdel operation groupdel
+define op_groupadduser operation groupadduser
+define op_groupdeluser operation groupdeluser
+define op_groupaddgroup operation groupaddgroup
+define op_groupdelgroup operation groupdelgroup
+define op_groupdescription operation groupdescription
+define op_group anyof op_grouplist op_groupshow op_groupadd op_groupdel op_groupadduser op_groupdeluser op_groupaddgroup op_groupdelgroup op_groupdescription
+
+## Aggregation of admin ops
+define op_is_admin anyof op_user op_group
+
+# Primary repository-related operations
+define op_read operation read
+define op_write operation write
+define op_createrepo operation createrepo
+define op_renamerepo operation renamerepo
+define op_destroyrepo operation destroyrepo
+
+# Remote configuration operations
+define op_config_show operation config_show
+define op_config_set operation config_set
+define op_config_del operation config_del
+define op_is_config anyof op_config_show op_config_set op_config_del
+
+# Reference update related operations
+define op_createref operation createref
+define op_deleteref operation deleteref
+define op_fastforward operation updaterefff
+define op_forcedupdate operation updaterefnonff
+
+# Combinator operations
+define op_is_basic anyof op_read op_write
+define op_is_update anyof op_fastforward op_forcedupdate
+define op_is_normal anyof op_fastforward op_createref op_deleteref
+
+# Administration
+define is_admin_repo repository gitano-admin
+define is_gitano_ref ref ~^refs/gitano/
+define is_admin_ref ref refs/gitano/admin
+
+# Codethink defines:
+
+define repo_has_project_code repository ~^ct[0-9]+/
+
+define ct_reader group ${repository/1}-readers
+define ct_writer group ${repository/1}-writers
+define ct_admin group ${repository/1}-admins
+
+define master_ref ref ~^refs/heads/master$
+
+define op_is_reffy anyof op_is_normal op_forcedupdate
+
+define ct_site_admin group ct-admin
+
+define target_group_gitano_admin targetgroup gitano-admin