- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
```rust
impl actix_web::FromRequest for Token {
type Error = ApiError;
type Future = Pin<Box<dyn Future<Output = Result<Self, Self::Error>>>>;
type Config = ();
fn from_request(req: &actix_web::HttpRequest, _: &mut actix_web::dev::Payload) -> Self::Future {
match req.extensions().get::<Option<Self>>().map(Clone::clone) {
Some(Some(v)) => Box::pin(async { Ok(v) }),
None | Some(None) => {
let header = req.headers().get("Authorization").map(Clone::clone);
Box::pin(
web::Data::<Pool>::extract(req)
.map_err(ApiError::from)
.and_then(move |pool| {
async move {
let header = header.ok_or(ApiError::authorization_required())?;
let auth = header.to_str()?;
let uuid = Uuid::parse_str(auth)
.map_err(|_| ApiError::authorization_bad_token())?;
let (_, token) = Self::find(&uuid, pool.get_conn().await?).await?;
let token = token.ok_or(ApiError::authorization_bad_token())?;
Ok(token)
}
})
.boxed_local()
)
}
}
}
}
Было принято решение создать Authorization middleware, который при каждом запросе авторизировал пользователя, если есть нужный хидер. В связи с тем, что некоторые роуты достают модель через ручной экстрактор, пришлось дописать эту хуйню (Второе условие никогда не будет выполнена вообще судя по всему).
guest8 18.06.2020 11:40 # −999
nemyx 18.06.2020 17:21 # 0
guest8 18.06.2020 17:22 # −999
Rooster 18.06.2020 18:12 # +1
Fike 18.06.2020 19:09 # 0
18:26 17.07.2012
394
Московская монорельсовая дорога
© РИА Новости / Владимир Песня
Перейти в фотобанк
Сергей Петухов
Сергей Петухов
обозреватель, руководитель группы оперативного комментария
группа оперативного комментария занимается скоростной расстановкой комментариев к операторам в шаблоне?
nemyx 20.06.2020 04:14 # 0
Привет из 2020-го года. Она продолжает работать, но в «экскурсионном режиме», т. е. рейсы редкие. На линии два поезда, запасных нет, потому что детали для ремонта перестали закупать несколько лет назад. Для выживших поездов пока ещё можно снять годные детали с разукомплектованных.
Линию закроют, когда последний поезд заклинит прямо на линии, а починить его будет нечем.
Строительство скоростного трамвая откладывают. Лужков обещал построить скоростной трамвай, да так и умер, даже не начав. И похоже, что Бордюрыч собирается повторить его судьбу.
Лучшее решение — построить эстакады через Октябрьскую железную дорогу и через Савёловское направление и пустить по ним трамвай и автомобили вместо монорельса. Однако, у станции метро «Тимирязевская» на месте будущей эстакады внезапно вырос «илитный» жилой комплекс («Дыхание») и у Останкинского пивзавода тоже вырос «илитный» жилой комплекс («Фонвизинский»). Позалепили всё «илитными» жилыми комплексами, теперь дорожные развязки строить негде.
real_escape_string 18.06.2020 17:04 # 0
nemyx 20.06.2020 05:43 # 0
jojaxon 20.06.2020 05:46 # 0