| 189 | |
| 190 | #[tokio::test] |
| 191 | async fn inactive_user_has_no_access() { |
| 192 | let mut test_context = setup(); |
| 193 | let permission = Permission::new( |
| 194 | Allow::users(vec![test_context.finance_user.id]), |
| 195 | Resource::Account(AccountResourceAction::Read(ResourceId::Any)), |
| 196 | ); |
| 197 | |
| 198 | PERMISSION_REPOSITORY.insert(permission.key(), permission.to_owned()); |
| 199 | |
| 200 | let ctx = CallContext::new(test_context.finance_user.identities[0]); |
| 201 | |
| 202 | assert!(Authorization::is_allowed( |
| 203 | &ctx, |
| 204 | &Resource::Account(AccountResourceAction::Read(ResourceId::Any)), |
| 205 | )); |
| 206 | |
| 207 | test_context.finance_user.status = UserStatus::Inactive; |
| 208 | |
| 209 | USER_REPOSITORY.insert( |
| 210 | test_context.finance_user.to_key(), |
| 211 | test_context.finance_user.clone(), |
| 212 | ); |
| 213 | |
| 214 | let ctx = CallContext::new(test_context.finance_user.identities[0]); |
| 215 | |
| 216 | assert!(!Authorization::is_allowed( |
| 217 | &ctx, |
| 218 | &Resource::Account(AccountResourceAction::Read(ResourceId::Any)), |
| 219 | )); |
| 220 | } |
| 221 | |
| 222 | #[tokio::test] |
| 223 | async fn fail_user_has_access_to_admin_resource() { |