1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
use actix_session::Session;
use actix_web::{web, HttpRequest};

use dbui_core::cfg::AppConfig;
use dbui_core::ctx::RequestContext;
use dbui_core::profile::UserProfile;

pub fn req_context(_session: &Session, cfg: &web::Data<AppConfig>, req: &HttpRequest, action_key: &'static str) -> RequestContext {
  let app_cfg = cfg.get_ref().clone();
  let user_profile: UserProfile = UserProfile::load(app_cfg.files(), app_cfg.root_logger());
  let router = crate::util::router::RequestRouter::new(req.clone());
  let logger = app_cfg
    .root_logger()
    .new(slog::o!("action" => action_key, "user_id" => user_profile.name().clone()));
  RequestContext::new(app_cfg, user_profile, router, logger)
}