예제 #1
0
            def token_cb(token):
                username = token.username
                #            wbSession = self.get_session(request)
                user = IndxUser(self.database, username)

                force_get = False
                if force_get in subhandler:
                    force_get = subhandler['force_get']

                def acl_cb(acl):
                    logging.debug(
                        "BaseHandler _matches_acl_requirements got acl: {0}".
                        format(acl))
                    permissions = acl['acl']

                    for key in req_acl:
                        if key not in permissions:  # key (e.g. "read", "write", "admin") must be in the user's acl, otherwise Fail
                            return_d.callback(False)
                            return return_d

                        if not permissions[
                                key]:  # if the key isn't True, then fail
                            return_d.callback(False)
                            return return_d

                    # no failures, pass.
                    return_d.callback(True)
                    return return_d

                user.get_acl(self.get_request_box(
                    request,
                    force_get=force_get)).addCallbacks(acl_cb,
                                                       return_d.errback)
예제 #2
0
파일: base.py 프로젝트: sociam/indx
            def token_cb(token):
                username = token.username
    #            wbSession = self.get_session(request)
                user = IndxUser(self.database, username)

                force_get = False
                if force_get in subhandler:
                    force_get = subhandler['force_get']

                def acl_cb(acl):
                    logging.debug("BaseHandler _matches_acl_requirements got acl: {0}".format(acl))
                    permissions = acl['acl']

                    for key in req_acl:
                        if key not in permissions: # key (e.g. "read", "write", "admin") must be in the user's acl, otherwise Fail
                            return_d.callback(False)
                            return return_d

                        if not permissions[key]: # if the key isn't True, then fail
                            return_d.callback(False)
                            return return_d
                    
                    # no failures, pass.
                    return_d.callback(True)
                    return return_d

                user.get_acl(self.get_request_box(request, force_get = force_get)).addCallbacks(acl_cb, return_d.errback)