# -*- 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"