summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Brillault <gentoo@lerya.net>2013-08-03 09:08:42 -0400
committerAnthony G. Basile <blueness@gentoo.org>2013-08-03 09:19:39 -0400
commita0eaa253b2950ecd1a88db3b3a3b298b03498e4c (patch)
tree3bc3106e7075e1f9286236596eee4d9d32f35645
parentWebappconfig/config.py: Adds check for package name and version (diff)
downloadwebapp-config-a0eaa253b2950ecd1a88db3b3a3b298b03498e4c.tar.gz
webapp-config-a0eaa253b2950ecd1a88db3b3a3b298b03498e4c.tar.bz2
webapp-config-a0eaa253b2950ecd1a88db3b3a3b298b03498e4c.zip
WebappConfig/{config.py,server.py}: set server uid/gid in the config
X-Gentoo-Bug: 432908 X-Gentoo-Bug-URL: https://bugs.gentoo.org/432908
-rw-r--r--WebappConfig/config.py36
-rw-r--r--WebappConfig/server.py20
-rw-r--r--doc/webapp-config.5.xml20
3 files changed, 61 insertions, 15 deletions
diff --git a/WebappConfig/config.py b/WebappConfig/config.py
index 04fb6f2..bf55d1e 100644
--- a/WebappConfig/config.py
+++ b/WebappConfig/config.py
@@ -708,6 +708,18 @@ class Config:
' variable "' + user + "'")
return result
+ def maybe_get_user(self, user):
+ result = None
+ input_user = self.maybe_get(user)
+ if not input_user:
+ return result
+ try:
+ result = Perm.get_user(input_user)
+ except KeyError:
+ OUT.die('You specified an invalid user value for the'
+ ' variable "' + user + "'")
+ return result
+
def get_group(self, group):
result = None
try:
@@ -717,6 +729,18 @@ class Config:
' variable "' + group + "'")
return result
+ def maybe_get_group(self, group):
+ result = None
+ input_group = self.maybe_get(group)
+ if not input_group:
+ return result
+ try:
+ result = Perm.get_group(input_group)
+ except KeyError:
+ OUT.die('You specified an invalid group value for the'
+ ' variable "' + group + "'")
+ return result
+
def installdir(self):
return self.maybe_get('g_installdir')
@@ -1514,27 +1538,27 @@ class Config:
self.get_group('vhost_default_gid'),
self.get_perm('vhost_perms_virtualowned_file')],
# These will be re-set by the servers
- 'server-owned' : [None,
- None,
+ 'server-owned' : [self.maybe_get_user('vhost_server_uid'),
+ self.maybe_get_group('vhost_server_gid'),
self.get_perm('vhost_perms_serverowned_file')],
'config-owned' : [self.get_user('vhost_config_uid'),
self.get_group('vhost_config_gid'),
self.get_perm('vhost_perms_configowned_file')],
'config-server-owned' : [self.get_user('vhost_config_uid'),
- None,
+ self.maybe_get_group('vhost_server_gid'),
self.get_perm('vhost_perms_serverowned_file')],},
'dir' : {'default-owned' :[self.get_user('vhost_default_uid'),
self.get_group('vhost_default_gid'),
self.get_perm('vhost_perms_defaultowned_dir')],
# These will be re-set by the servers
- 'server-owned' : [None,
- None,
+ 'server-owned' : [self.maybe_get_user('vhost_server_uid'),
+ self.maybe_get_group('vhost_server_gid'),
self.get_perm('vhost_perms_serverowned_dir')],
'config-owned' : [self.get_user('vhost_config_uid'),
self.get_group('vhost_config_gid'),
self.get_perm('vhost_perms_configowned_dir')],
'config-server-owned' : [self.get_user('vhost_config_uid'),
- None,
+ self.maybe_get_group('vhost_server_gid'),
self.get_perm('vhost_perms_serverowned_dir')],
'install-owned': [self.get_user('vhost_default_uid'),
self.get_group('vhost_default_gid'),
diff --git a/WebappConfig/server.py b/WebappConfig/server.py
index f67ecdb..a2b8e3f 100644
--- a/WebappConfig/server.py
+++ b/WebappConfig/server.py
@@ -67,15 +67,17 @@ class Basic:
self.__vhostroot = directories['vhostroot']
# + server owned
- permissions['file']['server-owned'][0] = self.vhost_server_uid
- permissions['file']['server-owned'][1] = self.vhost_server_gid
- permissions['dir']['server-owned'][0] = self.vhost_server_uid
- permissions['dir']['server-owned'][1] = self.vhost_server_gid
- # and config owned directories have server gid
- permissions['dir']['config-owned'][1] = self.vhost_server_gid
- # allows server and config owned
- permissions['file']['config-server-owned'][1] = self.vhost_server_gid
- permissions['dir']['config-server-owned'][1] = self.vhost_server_gid
+ if permissions['file']['server-owned'][0] == 0:
+ permissions['file']['server-owned'][0] = self.vhost_server_uid
+ permissions['dir']['server-owned'][0] = self.vhost_server_uid
+ if permissions['file']['server-owned'][1] == 0:
+ permissions['file']['server-owned'][1] = self.vhost_server_gid
+ permissions['dir']['server-owned'][1] = self.vhost_server_gid
+ # and config owned directories have server gid
+ permissions['dir']['config-owned'][1] = self.vhost_server_gid
+ # allows server and config owned
+ permissions['file']['config-server-owned'][1] = self.vhost_server_gid
+ permissions['dir']['config-server-owned'][1] = self.vhost_server_gid
self.__perm = permissions
self.__handler = handler
diff --git a/doc/webapp-config.5.xml b/doc/webapp-config.5.xml
index 49de978..f7fdab4 100644
--- a/doc/webapp-config.5.xml
+++ b/doc/webapp-config.5.xml
@@ -118,6 +118,26 @@
</varlistentry>
<varlistentry>
+ <term>vhost_server_uid</term>
+ <listitem>
+ <para>Overiding parameter for the server-dependant hardcoded uid which specifies the user to own all files and directories that are server-owned.</para>
+ <para>Warning: <command>webapp-config</command>'s <option>-s</option> switch does not overide this parameter.</para>
+ <para>By default, this is disabled.</para>
+ <para>This can be <emphasis>either</emphasis> the name of a user or their numerical user id.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>vhost_server_gid</term>
+ <listitem>
+ <para>Overiding parameter for the server-dependant hardcoded gid which specifies the group to own all files and directories that are server-owned.</para>
+ <para>Warning: <command>webapp-config</command>'s <option>-s</option> switch does not overide this parameter.</para>
+ <para>By default, this is disabled.</para>
+ <para>This can be <emphasis>either</emphasis> the name of a group or their numerical group id.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term>vhost_config_uid</term>
<listitem>
<para>Default value when <command>webapp-config</command>'s <option>-u</option> switch hasn't been used.</para>