mirror of
https://github.com/freedombox/FreedomBox.git
synced 2026-05-20 10:34:30 +00:00
Generic framework for user group per application
- Closes #928 - Adds shell and python APIs adding/removing LDAP groups Signed-off-by: Rahul De <rahul080327@gmail.com> Reviewed-by: Joseph Nuthalapati <njoseph@thoughtworks.com>
This commit is contained in:
parent
7b75e97e96
commit
a22a01a76f
24
actions/ldap
24
actions/ldap
@ -92,13 +92,29 @@ get_user_groups()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
add_group()
|
||||||
|
{
|
||||||
|
groupname="$1"
|
||||||
|
|
||||||
|
ldapsearch -Q -L -L -L -Y EXTERNAL -H ldapi:/// -s base -b "cn=${groupname},dc=thisbox" || ldapaddgroup "${groupname}" > /dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
remove_group()
|
||||||
|
{
|
||||||
|
groupname="$1"
|
||||||
|
|
||||||
|
ldapsearch -Q -L -L -L -Y EXTERNAL -H ldapi:/// -s base -b "cn=${groupname},dc=thisbox" && ldapdeletegroup "${groupname}" > /dev/null 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
add_user_to_group()
|
add_user_to_group()
|
||||||
{
|
{
|
||||||
username="$1"
|
username="$1"
|
||||||
groupname="$2"
|
groupname="$2"
|
||||||
|
|
||||||
# Try to create group and ignore failure if group already exists
|
# Try to create group and ignore failure if group already exists
|
||||||
ldapaddgroup $groupname > /dev/null 2>&1 || true
|
add_group "${groupname}"
|
||||||
|
|
||||||
ldapaddusertogroup $username $groupname > /dev/null
|
ldapaddusertogroup $username $groupname > /dev/null
|
||||||
|
|
||||||
@ -149,6 +165,12 @@ case $command in
|
|||||||
remove-user-from-group)
|
remove-user-from-group)
|
||||||
remove_user_from_group "$@"
|
remove_user_from_group "$@"
|
||||||
;;
|
;;
|
||||||
|
add-group)
|
||||||
|
add_group "$@"
|
||||||
|
;;
|
||||||
|
remove-group)
|
||||||
|
remove_group "$@"
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Invalid sub-command"
|
echo "Invalid sub-command"
|
||||||
exit -1
|
exit -1
|
||||||
|
|||||||
@ -18,8 +18,8 @@
|
|||||||
Python action utility functions.
|
Python action utility functions.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
|
||||||
import logging
|
import logging
|
||||||
|
import os
|
||||||
import shutil
|
import shutil
|
||||||
import socket
|
import socket
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|||||||
@ -84,3 +84,11 @@ def _diagnose_ldap_entry(search_item):
|
|||||||
|
|
||||||
return [_('Check LDAP entry "{search_item}"')
|
return [_('Check LDAP entry "{search_item}"')
|
||||||
.format(search_item=search_item), result]
|
.format(search_item=search_item), result]
|
||||||
|
|
||||||
|
|
||||||
|
def add_group(group):
|
||||||
|
actions.superuser_run("ldap", options=["add-group", group])
|
||||||
|
|
||||||
|
|
||||||
|
def remove_group(group):
|
||||||
|
actions.superuser_run("ldap", options=["remove-group", group])
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user