Merge pull request #21 from npze/dev

app and user update
This commit is contained in:
Alexis Gavoty 2013-07-24 03:05:19 -07:00
commit c1a0332a38
2 changed files with 29 additions and 19 deletions

View file

@ -221,6 +221,7 @@ def app_map(app=None, raw=False):
'label': app_settings['label'], 'label': app_settings['label'],
'uid': app_settings['uid'], 'uid': app_settings['uid'],
'instance': app_settings['instance'], 'instance': app_settings['instance'],
'mode': app_settings['mode'],
} }
else: else:
result['https://'+app_settings['domain']+app_settings['path']] = app_settings['label'] result['https://'+app_settings['domain']+app_settings['path']] = app_settings['label']
@ -327,12 +328,13 @@ def app_upgrade(app, instance=[], url=None, file=None):
######################################### #########################################
# TMP: Remove old application # TMP: Remove old application
if os.path.exists(app_final_path): shutil.rmtree(app_final_path) # if os.path.exists(app_final_path): shutil.rmtree(app_final_path)
os.system('cp -a "'+ app_tmp_folder +'" "'+ app_final_path +'"') os.system('cp -a "'+ app_tmp_folder +'" "'+ app_final_path +'"')
if is_web: if is_web:
os.system('chown -R www-data: "'+ app_final_path +'"') if manifest['type'] != 'privileged' and manifest['type'] != 'certified':
os.system('chown -R www-data: "'+ app_final_path +'"')
os.system('service apache2 reload') os.system('service apache2 reload')
shutil.rmtree(app_final_path + manifest['yunohost']['script_path']) shutil.rmtree(app_final_path + manifest['yunohost']['script_path'])
@ -407,6 +409,9 @@ def app_install(app, domain, path='/', label=None, mode='private'):
if app_path in path and app_path.count('/') < path.count('/'): if app_path in path and app_path.count('/') < path.count('/'):
raise YunoHostError(1, _("Unable to install app at this location")) raise YunoHostError(1, _("Unable to install app at this location"))
if path != '/' and lvl(manifest, 'yunohost', 'webapp', 'domain_root_only') and is_true(manifest['yunohost']['domain_root_only']):
raise YunoHostError(1, _("App must be installed to domain root"))
########################################## ##########################################
# Fetch or extract sources # # Fetch or extract sources #
@ -512,20 +517,23 @@ def app_install(app, domain, path='/', label=None, mode='private'):
# Apache # # Apache #
########## ##########
a2_conf_lines = [ 'Alias '+ path +' '+ app_final_path + manifest['launch_path'] ] if lvl(manifest,'yunohost','webapp','custom_apache_conf'):
if path != '/': os.system('mv '+app_tmp_folder+'/'+manifest['yunohost']['webapp']['custom_apache_conf']+' '+a2_settings_path +'/'+ domain +'.d/'+ unique_app_id +'.app.conf')
a2_conf_lines.append('Alias '+ path[:len(path)-1] +' '+ app_final_path + manifest['launch_path']) else:
a2_conf_lines = [ 'Alias '+ path +' '+ app_final_path + manifest['launch_path'] ]
if path != '/':
a2_conf_lines.append('Alias '+ path[:len(path)-1] +' '+ app_final_path + manifest['launch_path'])
a2_conf_lines.append('<Directory '+ app_final_path +'>') a2_conf_lines.append('<Directory '+ app_final_path +'>')
if lvl(manifest, 'yunohost', 'webapp', 'language') and manifest['yunohost']['webapp']['language'] == 'php': if lvl(manifest, 'yunohost', 'webapp', 'language') and manifest['yunohost']['webapp']['language'] == 'php':
for line in open(a2_template_path +'/php.conf'): a2_conf_lines.append(line.rstrip()) for line in open(a2_template_path +'/php.conf'): a2_conf_lines.append(line.rstrip())
a2_conf_lines.append('</Directory>') a2_conf_lines.append('</Directory>')
with open(a2_settings_path +'/'+ domain +'.d/'+ unique_app_id +'.app.conf', 'w') as a2_conf: with open(a2_settings_path +'/'+ domain +'.d/'+ unique_app_id +'.app.conf', 'w') as a2_conf:
for line in a2_conf_lines: for line in a2_conf_lines:
a2_conf.write(line + '\n') a2_conf.write(line + '\n')
######################################### #########################################
@ -536,12 +544,13 @@ def app_install(app, domain, path='/', label=None, mode='private'):
except OSError: os.makedirs(apps_path) except OSError: os.makedirs(apps_path)
# TMP: Remove old application # TMP: Remove old application
if os.path.exists(app_final_path): shutil.rmtree(app_final_path) # if os.path.exists(app_final_path): shutil.rmtree(app_final_path)
os.system('cp -a "'+ app_tmp_folder +'" "'+ app_final_path +'"') os.system('cp -a "'+ app_tmp_folder +'" "'+ app_final_path +'"')
if is_web: if is_web:
os.system('chown -R www-data: "'+ app_final_path +'"') if manifest['type'] != 'privileged' and manifest['type'] != 'certified':
os.system('chown -R www-data: "'+ app_final_path +'"')
os.system('service apache2 reload') os.system('service apache2 reload')
shutil.rmtree(app_final_path + manifest['yunohost']['script_path']) shutil.rmtree(app_final_path + manifest['yunohost']['script_path'])

View file

@ -72,10 +72,11 @@ def user_list(fields=None, filter=None, limit=None, offset=None):
entry = { entry = {
'Username': user['uid'][0], 'Username': user['uid'][0],
'Fullname': user['cn'][0], 'Fullname': user['cn'][0],
'Mail': user['mail'][0]
} }
if len(user['mail']) > 1: if 'mail' in user.keys():
entry['Mail Aliases'] = user['mail'][1:] entry['Mail'] = user['mail'][0]
if len(user['mail']) > 1:
entry['Mail Aliases'] = user['mail'][1:]
if 'maildrop' in user: if 'maildrop' in user:
entry['Mail Forward'] = user['maildrop'] entry['Mail Forward'] = user['maildrop']
@ -194,7 +195,7 @@ def user_update(username, firstname=None, lastname=None, mail=None, change_passw
new_attr_dict['cn'] = new_attr_dict['displayName'] = firstname + ' ' + lastname new_attr_dict['cn'] = new_attr_dict['displayName'] = firstname + ' ' + lastname
if change_password: if change_password:
pwd_changed = os.system('echo "'+ password +'\n'+ password +'" | smbldap-passwd '+ username) pwd_changed = os.system('echo "'+ change_password +'\n'+ change_password +'" | smbldap-passwd '+ username)
if pwd_changed > 0: if pwd_changed > 0:
raise YunoHostError(169, _("An error occured during password update")) raise YunoHostError(169, _("An error occured during password update"))