def __call__(self, *args, **kwargs): # if you don't provide "user" as a kwarg, this just acts like # a normal ol' boring task if "user" in kwargs: user = kwargs.pop("user") CeleryTaskTracker.objects.create(taskid=self.request.id, taskclass=self.__class__.__name__, owner=user) get_pulp_server(user=user) self.errors = [] return Task.__call__(self, *args, **kwargs)
def authenticate(self, username, password=None): """ authenticate a user """ try: self.server.set_basic_auth_credentials(username, password) logging.info("Successfully logged in with password") cert = self.userapi.admin_certificate() bundle = SpongeBundle(username) bundle.write(cert) self.server = get_pulp_server(new=True) self.server.set_ssl_credentials(bundle.crtpath()) udata = self.userapi.user(username) logger.info("%s logged in successfully" % username) except server.ServerRequestError, err: logger.warning("Login failure for %s: %s" % (username, err[1])) return None
def process_request(self, request): if (request.path != self.require_login_path and request.user.is_anonymous()): if request.POST: return login(request) else: return redirect_to_login(request.path, self.require_login_path) elif not request.user.is_anonymous(): try: pulpserver = get_pulp_server(user=request.user.username) except (BIOError, server.ServerRequestError), err: logger.warning("Session for %s expired" % request.user.username) logout(request) messages.warning(request, "Your session has expired") return redirect_to_login(request.path, self.require_login_path) except IOError, err: logger.info(err) logout(request) return redirect_to_login(request.path, self.require_login_path)
def __init__(self): self.server = get_pulp_server() self.userapi = UserAPI()