Projet

Général

Profil

« Précédent | Suivant » 

Révision 4c755abe

Ajouté par Jérôme Schneider il y a plus de 9 ans

backends: add last_connection_date and creation_date to update_or_create

Closes #5542

Voir les différences:

mandaye/backends/default.py
1 1

  
2
from datetime import datetime
2 3
from importlib import import_module
3 4

  
4 5
from mandaye import config
......
68 69
        pass
69 70

  
70 71
    @staticmethod
71
    def update_or_create(sp_name, sp_login, sp_post_values, idp_unique_id, idp_name):
72
    def update_or_create(sp_name, sp_login, sp_post_values, idp_unique_id,
73
            idp_name='default', creation_date=None, last_connection_date=None):
72 74
        """ update or create an associtaion which match the following values
75
        creation_date and last_connection_date: by default datetime.utcnow()
73 76
        return the association id
74 77
        """
75 78
        pass
mandaye/backends/ldap_back.py
1 1

  
2
import datetime
3 2
import json
4 3
import ldap
5 4
import ldap.modlist
6 5
import random
7 6

  
7
from datetime import datetime
8

  
8 9
from mandaye import config
9 10
from mandaye.log import logger
10 11
from mandaye.backends.default import storage_conn
......
33 34
                'sp_post_values': json.loads(ldap_object['spPostValues'][0]),
34 35
                'idp_unique_id': ldap_object['idpUniqueID'][0],
35 36
                'idp_name': ldap_object['idpName'][0],
36
                'last_connection': datetime.datetime.strptime(
37
                'last_connection': datetime.strptime(
37 38
                    ldap_object['lastConnectionDate'][0][:14],
38 39
                    '%Y%m%d%H%M%S'),
39
                'creation_date': datetime.datetime.strptime(
40
                'creation_date': datetime.strptime(
40 41
                    ldap_object['creationDate'][0][:14],
41 42
                    '%Y%m%d%H%M%S'),
42 43
                }
......
73 74
        return False
74 75

  
75 76
    @staticmethod
76
    def update_or_create(sp_name, sp_login, sp_post_values, idp_unique_id, idp_name='default'):
77
    def update_or_create(sp_name, sp_login, sp_post_values, idp_unique_id,
78
            idp_name='default', creation_date=None, last_connection_date=None):
77 79
        """ update or create an associtaion which match the following values
78 80
        return the association id
79 81
        """
......
81 83
                filterstr='(&(objectClass=MandayeUser)(spName=%s)(spLogin=%s)(idpUniqueID=%s)(idpName=%s))' %\
82 84
                        (sp_name, sp_login, idp_unique_id, idp_name))
83 85
        if not results:
86
            creation_date = creation_date or datetime.utcnow()
87
            last_connection_date = last_connection_date or datetime.utcnow()
84 88
            association = {'spName': str(sp_name),
85 89
                    'spLogin': str(sp_login),
86 90
                    'spPostValues': json.dumps(sp_post_values),
87 91
                    'idpUniqueID': str(idp_unique_id),
88 92
                    'idpName': str(idp_name),
89
                    'creationDate': datetime.datetime.utcnow().strftime('%Y%m%d%H%M%SZ'),
90
                    'lastConnectionDate': datetime.datetime.utcnow().strftime('%Y%m%d%H%M%SZ'),
93
                    'creationDate': creation_date.strftime('%Y%m%d%H%M%SZ'),
94
                    'lastConnectionDate': last_connection_date.strftime('%Y%m%d%H%M%SZ'),
91 95
                    'objectClass': 'MandayeUser'
92 96
                    }
93 97
            mod_list = ldap.modlist.addModlist(association)
......
131 135
        """ update the association last connection time with the current time
132 136
        return a dict of the association
133 137
        """
134
        last_connection = datetime.datetime.utcnow().strftime("%Y%m%d%H%M%SZ")
138
        last_connection = datetime.utcnow().strftime("%Y%m%d%H%M%SZ")
135 139
        dn = "uniqueID=%s,%s" % (asso_id, config.ldap_base_dn)
136 140
        mod_list = [(ldap.MOD_REPLACE, 'lastConnectionDate', last_connection)]
137 141
        storage_conn.modify_s(dn, mod_list)
mandaye/backends/sql.py
71 71
        return False
72 72

  
73 73
    @staticmethod
74
    def update_or_create(sp_name, sp_login, sp_post_values, idp_unique_id, idp_name='default'):
74
    def update_or_create(sp_name, sp_login, sp_post_values, idp_unique_id,
75
            idp_name='default', creation_date=None, last_connection_date=None):
75 76
        """ update or create an associtaion which match the following values
76 77
        return the association id
77 78
        """
......
105 106
                        idp_id=idp_name
106 107
                        )
107 108
                storage_conn.add(idp_user)
109
            creation_date = creation_date or datetime.utcnow()
110
            last_connection_date = last_connection_date or datetime.utcnow()
108 111
            sp_user = SPUser(
109 112
                    login=sp_login,
110 113
                    post_values=sp_post_values,
111 114
                    idp_user=idp_user,
112
                    service_provider=service_provider
115
                    service_provider=service_provider,
116
                    creation_date=creation_date,
117
                    last_connection=last_connection_date
113 118
                    )
114 119
            storage_conn.add(sp_user)
115 120
            try:

Formats disponibles : Unified diff