68 lines
1.9 KiB
Python
68 lines
1.9 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
def toCidr(ip,mask=False):
|
|
""" Convert to CIDR notation
|
|
ip can be like this : 192.168.5.100/255.255.255.0
|
|
or you can provide the ip and the mask
|
|
"""
|
|
from IPy import IP
|
|
try:
|
|
if mask:
|
|
data="{0}/{1}".format(ip,mask)
|
|
else:
|
|
data=ip
|
|
return str(IP(data))
|
|
except:
|
|
return data
|
|
|
|
def readPass(encoder,reader):
|
|
try:
|
|
mypwdreader=open(reader, "r").readline().rstrip()
|
|
if encoder == "":
|
|
return mypwdreader
|
|
elif encoder == "base64":
|
|
import base64
|
|
return base64.b64encode(mypwdreader)
|
|
|
|
except:
|
|
return "mot de passe inconnu"
|
|
|
|
def getSSOFilters():
|
|
""" Convert former eole-sso filters to LemonLDAP filters
|
|
"""
|
|
import glob
|
|
from configparser import ConfigParser
|
|
|
|
try:
|
|
filters = { 'uid': "uid", "mail": "mail" }
|
|
filterDirectory = "/usr/share/sso/app_filters/"
|
|
filterExtention = ".ini"
|
|
filterSection = "utilisateur"
|
|
filterFiles = glob.glob("{0}/*{1}".format(filterDirectory, filterExtention))
|
|
toClean = [ "__name__" ]
|
|
if len(filterFiles) != 0:
|
|
for fi in filterFiles:
|
|
# Don't parse "applications.ini"
|
|
config = ConfigParser()
|
|
config.read(fi)
|
|
if filterSection in config._sections:
|
|
filters.update(config._sections[filterSection].items())
|
|
for key in toClean:
|
|
if key in filters.keys():
|
|
del(filters[key])
|
|
res = {}
|
|
index=0
|
|
size=len(filters)
|
|
return(filters.items())
|
|
"""
|
|
for k,v in filters.items():
|
|
res[k] " \"{0}\": \"{1}\"".format(k,v)
|
|
index += 1
|
|
if index != size:
|
|
res += ",\n"
|
|
return(res)
|
|
"""
|
|
except:
|
|
return "Error Generating Filters"
|
|
|