Soft delete a user (set is_active to False). Args: user_id (str): The user ID. Returns: bool: True if successful, False otherwise.
(self, user_id: str)
| 421 | session.close() |
| 422 | |
| 423 | def delete_user(self, user_id: str) -> bool: |
| 424 | """Soft delete a user (set is_active to False). |
| 425 | |
| 426 | Args: |
| 427 | user_id (str): The user ID. |
| 428 | |
| 429 | Returns: |
| 430 | bool: True if successful, False otherwise. |
| 431 | """ |
| 432 | session = self._get_session() |
| 433 | try: |
| 434 | user = session.query(User).filter(User.user_id == user_id).first() |
| 435 | if not user: |
| 436 | return False |
| 437 | |
| 438 | # Don't delete root user |
| 439 | if user.role == UserRole.ROOT: |
| 440 | logger.warning("Cannot delete root user") |
| 441 | return False |
| 442 | |
| 443 | user.is_active = False |
| 444 | session.commit() |
| 445 | logger.info(f"User '{user_id}' deactivated") |
| 446 | return True |
| 447 | except Exception as e: |
| 448 | session.rollback() |
| 449 | logger.error(f"Error deleting user: {e}") |
| 450 | return False |
| 451 | finally: |
| 452 | session.close() |
| 453 | |
| 454 | def delete_cube(self, cube_id: str) -> bool: |
| 455 | """Soft delete a cube (set is_active to False). |