mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
[enh] Review user actions and actionsmap to fit to moulinette
This commit is contained in:
parent
2b7881a44a
commit
3815bb5557
4 changed files with 73 additions and 43 deletions
|
@ -39,7 +39,7 @@ _global:
|
|||
authenticator:
|
||||
default:
|
||||
vendor: ldap
|
||||
help: Admin Password
|
||||
help: admin_password
|
||||
parameters:
|
||||
uri: ldap://localhost:389
|
||||
base_dn: dc=yunohost,dc=org
|
||||
|
@ -95,34 +95,43 @@ user:
|
|||
configuration:
|
||||
authenticate: all
|
||||
arguments:
|
||||
-u:
|
||||
full: --username
|
||||
help: Must be unique
|
||||
username:
|
||||
help: The unique username to create
|
||||
extra:
|
||||
ask: "Username"
|
||||
pattern:
|
||||
- '^[a-z0-9_]+$'
|
||||
- "Must be alphanumeric and underscore characters only"
|
||||
- pattern_username
|
||||
-f:
|
||||
full: --firstname
|
||||
extra:
|
||||
ask: "Firstname"
|
||||
ask: ask_firstname
|
||||
required: True
|
||||
pattern:
|
||||
- "^([^\\W\\d_]{2,30}[ ,.']{0,3})+$"
|
||||
- pattern_firstname
|
||||
-l:
|
||||
full: --lastname
|
||||
extra:
|
||||
ask: "Lastname"
|
||||
ask: ask_lastname
|
||||
required: True
|
||||
pattern:
|
||||
- "^([^\\W\\d_]{2,30}[ ,.']{0,3})+$"
|
||||
- pattern_lastname
|
||||
-m:
|
||||
full: --mail
|
||||
help: Main mail address must be unique
|
||||
help: Main unique email address
|
||||
extra:
|
||||
ask: "Mail address"
|
||||
ask: ask_email
|
||||
required: True
|
||||
pattern:
|
||||
- '^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$'
|
||||
- "Must be a valid email address (e.g. someone@domain.org)"
|
||||
- pattern_email
|
||||
-p:
|
||||
full: --password
|
||||
help: User password
|
||||
extra:
|
||||
password: "User password"
|
||||
password: ask_password
|
||||
required: True
|
||||
|
||||
### user_delete()
|
||||
delete:
|
||||
|
@ -131,15 +140,12 @@ user:
|
|||
configuration:
|
||||
authenticate: all
|
||||
arguments:
|
||||
-u:
|
||||
full: --users
|
||||
help: Username of users to delete
|
||||
nargs: "*"
|
||||
username:
|
||||
help: Username to delete
|
||||
extra:
|
||||
ask: "Users to delete"
|
||||
pattern:
|
||||
- '^[a-z0-9_]+$'
|
||||
- "Must be alphanumeric and underscore characters only"
|
||||
- pattern_username
|
||||
--purge:
|
||||
action: store_true
|
||||
|
||||
|
@ -151,13 +157,25 @@ user:
|
|||
authenticate: all
|
||||
arguments:
|
||||
username:
|
||||
help: Username of user to update
|
||||
help: Username to update
|
||||
-f:
|
||||
full: --firstname
|
||||
extra:
|
||||
pattern:
|
||||
- "^([^\\W\\d_]{2,30}[ ,.']{0,3})+$"
|
||||
- pattern_firstname
|
||||
-l:
|
||||
full: --lastname
|
||||
extra:
|
||||
pattern:
|
||||
- "^([^\\W\\d_]{2,30}[ ,.']{0,3})+$"
|
||||
- pattern_lastname
|
||||
-m:
|
||||
full: --mail
|
||||
extra:
|
||||
pattern:
|
||||
- '^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,6}$'
|
||||
- pattern_email
|
||||
-p:
|
||||
full: --change-password
|
||||
help: New password to set
|
||||
|
@ -181,14 +199,14 @@ user:
|
|||
|
||||
### user_info()
|
||||
info:
|
||||
action_help: Get user informations
|
||||
action_help: Get user information
|
||||
api: GET /users/<username>
|
||||
configuration:
|
||||
authenticate: all
|
||||
authenticator: ldap-anonymous
|
||||
arguments:
|
||||
username:
|
||||
help: Username or mail to get informations
|
||||
help: Username or email to get information
|
||||
|
||||
|
||||
#############################
|
||||
|
|
|
@ -134,6 +134,16 @@
|
|||
"user_deleted" : "User successfully deleted",
|
||||
"user_update_failed" : "Unable to update user",
|
||||
"user_updated" : "User successfully updated",
|
||||
"user_info_failed" : "Unable to retrieve user information"
|
||||
"user_info_failed" : "Unable to retrieve user information",
|
||||
|
||||
"admin_password" : "Administration password",
|
||||
"ask_firstname" : "First name",
|
||||
"ask_lastname" : "Last name",
|
||||
"ask_email" : "Email address",
|
||||
"ask_password" : "Password",
|
||||
"pattern_username" : "Must be alphanumeric and underscore characters only",
|
||||
"pattern_firstname" : "Must be a valid first name",
|
||||
"pattern_lastname" : "Must be a valid last name",
|
||||
"pattern_email" : "Must be a valid email address (e.g. someone@domain.org)"
|
||||
}
|
||||
|
||||
|
|
|
@ -134,6 +134,16 @@
|
|||
"user_deleted" : "Utilisateur supprimé avec succès",
|
||||
"user_update_failed" : "Impossible de modifier l'utilisateur",
|
||||
"user_updated" : "Utilisateur modifié avec succès",
|
||||
"user_info_failed" : "Impossible de récupérer les informations de l'utilisateur"
|
||||
"user_info_failed" : "Impossible de récupérer les informations de l'utilisateur",
|
||||
|
||||
"admin_password" : "Mot de passe d'administration",
|
||||
"ask_firstname" : "Prénom",
|
||||
"ask_lastname" : "Nom",
|
||||
"ask_email" : "Adresse mail",
|
||||
"ask_password" : "Mot de passe",
|
||||
"pattern_username" : "Doit être composé uniquement de caractères alphanumérique et de tiret bas",
|
||||
"pattern_firstname" : "Doit être un prénom valide",
|
||||
"pattern_lastname" : "Doit être un nom valide",
|
||||
"pattern_email" : "Doit être une adresse mail valide (ex. : someone@domain.org)"
|
||||
}
|
||||
|
||||
|
|
32
user.py
32
user.py
|
@ -186,38 +186,30 @@ def user_create(auth, username, firstname, lastname, mail, password):
|
|||
raise MoulinetteError(169, m18n.n('user_creation_failed'))
|
||||
|
||||
|
||||
def user_delete(auth, users, purge=False):
|
||||
def user_delete(auth, username, purge=False):
|
||||
"""
|
||||
Delete user
|
||||
|
||||
Keyword argument:
|
||||
users -- Username of users to delete
|
||||
username -- Username to delete
|
||||
purge
|
||||
|
||||
"""
|
||||
from yunohost.app import app_ssowatconf
|
||||
|
||||
if not isinstance(users, list):
|
||||
users = [ users ]
|
||||
deleted = []
|
||||
|
||||
for user in users:
|
||||
if auth.remove('uid=%s,ou=users' % user):
|
||||
# Update SFTP user group
|
||||
memberlist = auth.search(filter='cn=sftpusers', attrs=['memberUid'])[0]['memberUid']
|
||||
try: memberlist.remove(user)
|
||||
except: pass
|
||||
if auth.update('cn=sftpusers,ou=groups', { 'memberUid': memberlist }):
|
||||
if purge:
|
||||
os.system('rm -rf /home/%s' % user)
|
||||
deleted.append(user)
|
||||
continue
|
||||
else:
|
||||
raise MoulinetteError(169, m18n.n('user_deletion_failed'))
|
||||
if auth.remove('uid=%s,ou=users' % username):
|
||||
# Update SFTP user group
|
||||
memberlist = auth.search(filter='cn=sftpusers', attrs=['memberUid'])[0]['memberUid']
|
||||
try: memberlist.remove(username)
|
||||
except: pass
|
||||
if auth.update('cn=sftpusers,ou=groups', { 'memberUid': memberlist }):
|
||||
if purge:
|
||||
os.system('rm -rf /home/%s' % username)
|
||||
else:
|
||||
raise MoulinetteError(169, m18n.n('user_deletion_failed'))
|
||||
|
||||
app_ssowatconf(auth)
|
||||
msignals.display(m18n.n('user_deleted'), 'success')
|
||||
return { 'users': deleted }
|
||||
|
||||
|
||||
def user_update(auth, username, firstname=None, lastname=None, mail=None, change_password=None, add_mailforward=None, remove_mailforward=None, add_mailalias=None, remove_mailalias=None):
|
||||
|
|
Loading…
Add table
Reference in a new issue