mirror of
https://github.com/house-of-vanity/OutFleet.git
synced 2025-07-07 09:24:07 +00:00
Fix key ids
This commit is contained in:
@ -2,9 +2,9 @@ FROM python:3.12.3
|
|||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
#COPY requirements.txt ./
|
COPY ./requirements.txt .
|
||||||
COPY . .
|
|
||||||
RUN pip install --no-cache-dir -r requirements.txt
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
COPY . .
|
||||||
RUN python manage.py collectstatic --noinput
|
RUN python manage.py collectstatic --noinput
|
||||||
|
|
||||||
|
|
||||||
|
@ -3,8 +3,6 @@ services:
|
|||||||
#image: ultradesu/outfleet:v2
|
#image: ultradesu/outfleet:v2
|
||||||
image: outfleet:local
|
image: outfleet:local
|
||||||
container_name: outfleet-web
|
container_name: outfleet-web
|
||||||
# volumes:
|
|
||||||
# - .:/app
|
|
||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
ports:
|
ports:
|
||||||
@ -27,7 +25,7 @@ services:
|
|||||||
python manage.py create_admin &&
|
python manage.py create_admin &&
|
||||||
python manage.py runserver 0.0.0.0:8000"
|
python manage.py runserver 0.0.0.0:8000"
|
||||||
worker:
|
worker:
|
||||||
image: ultradesu/outfleet:v2
|
image: outfleet:local
|
||||||
container_name: outfleet-worker
|
container_name: outfleet-worker
|
||||||
# volumes:
|
# volumes:
|
||||||
# - .:/app
|
# - .:/app
|
||||||
@ -46,7 +44,7 @@ services:
|
|||||||
command: >
|
command: >
|
||||||
sh -c "sleep 3 && celery -A mysite worker"
|
sh -c "sleep 3 && celery -A mysite worker"
|
||||||
beat:
|
beat:
|
||||||
image: ultradesu/outfleet:v2
|
image: outfleet:local
|
||||||
container_name: outfleet-beat
|
container_name: outfleet-beat
|
||||||
# volumes:
|
# volumes:
|
||||||
# - .:/app
|
# - .:/app
|
||||||
|
@ -67,6 +67,9 @@ class OutlineServer(Server):
|
|||||||
|
|
||||||
def get_server_status(self, raw=False):
|
def get_server_status(self, raw=False):
|
||||||
status = {}
|
status = {}
|
||||||
|
|
||||||
|
for key in self.client.get_keys():
|
||||||
|
c.delete_key(key.key_id)
|
||||||
try:
|
try:
|
||||||
info = self.client.get_server_information()
|
info = self.client.get_server_information()
|
||||||
if raw:
|
if raw:
|
||||||
@ -115,7 +118,10 @@ class OutlineServer(Server):
|
|||||||
raise OutlineConnectionError("Client error. Can't connect.", original_exception=e)
|
raise OutlineConnectionError("Client error. Can't connect.", original_exception=e)
|
||||||
|
|
||||||
def _get_key(self, user):
|
def _get_key(self, user):
|
||||||
return self.client.get_key(user.hash)
|
logger.error(f"Asking for key for user {user.username}")
|
||||||
|
result = self.client.get_key(str(user.username))
|
||||||
|
logger.error(f"Got key for user {user.username} - {result}")
|
||||||
|
return result
|
||||||
|
|
||||||
def get_user(self, user, raw=False):
|
def get_user(self, user, raw=False):
|
||||||
user_info = self._get_key(user)
|
user_info = self._get_key(user)
|
||||||
@ -150,9 +156,8 @@ class OutlineServer(Server):
|
|||||||
self.client.delete_key(user.hash):
|
self.client.delete_key(user.hash):
|
||||||
|
|
||||||
self.delete_user(user)
|
self.delete_user(user)
|
||||||
key_id = f"{user.username}-{user.hash}"
|
|
||||||
key = self.client.create_key(
|
key = self.client.create_key(
|
||||||
key_id=key_id,
|
key_id=user.username,
|
||||||
name=user.username,
|
name=user.username,
|
||||||
method=server_user.method,
|
method=server_user.method,
|
||||||
password=user.hash,
|
password=user.hash,
|
||||||
@ -162,9 +167,8 @@ class OutlineServer(Server):
|
|||||||
logger.debug(f"[{self.name}] User {user.username} updated")
|
logger.debug(f"[{self.name}] User {user.username} updated")
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
key_id = f"{user.username}-{user.hash}"
|
|
||||||
key = self.client.create_key(
|
key = self.client.create_key(
|
||||||
key_id=key_id,
|
key_id=user.username,
|
||||||
name=user.username,
|
name=user.username,
|
||||||
method="chacha20-ietf-poly1305",
|
method="chacha20-ietf-poly1305",
|
||||||
password=user.hash,
|
password=user.hash,
|
||||||
@ -177,10 +181,9 @@ class OutlineServer(Server):
|
|||||||
if "code\":\"Conflict" in error_message:
|
if "code\":\"Conflict" in error_message:
|
||||||
logger.warning(f"[{self.name}] Conflict for User {user.username}, trying to force sync. {error_message}")
|
logger.warning(f"[{self.name}] Conflict for User {user.username}, trying to force sync. {error_message}")
|
||||||
for key in self.client.get_keys():
|
for key in self.client.get_keys():
|
||||||
logger.warning(f"[{self.name}] hash: {user.hash}, password: {key.password}")
|
logger.warning(f"[{self.name}] checking user: {key.name} passowrd: {key.password}")
|
||||||
if key.password == user.hash:
|
if key.password == user.hash:
|
||||||
self.client.delete_key(key.key_id)
|
self.delete_user(user)
|
||||||
logger.warning(f"[{self.name}] Removed orphan key{str(key)}")
|
|
||||||
return self.add_user(user)
|
return self.add_user(user)
|
||||||
else:
|
else:
|
||||||
raise OutlineConnectionError("API Error", original_exception=e)
|
raise OutlineConnectionError("API Error", original_exception=e)
|
||||||
@ -203,7 +206,7 @@ class OutlineServer(Server):
|
|||||||
return {"status": "User not found on server. Nothing to do."}
|
return {"status": "User not found on server. Nothing to do."}
|
||||||
|
|
||||||
if server_user:
|
if server_user:
|
||||||
self.logger.info(f"[{self.name}] TEST")
|
self.logger.info(f"Deleting key with key_id: {server_user.key_id}")
|
||||||
self.client.delete_key(server_user.key_id)
|
self.client.delete_key(server_user.key_id)
|
||||||
result = {"status": "User was deleted"}
|
result = {"status": "User was deleted"}
|
||||||
self.logger.info(f"[{self.name}] User deleted: {user.username} on server {self.name}")
|
self.logger.info(f"[{self.name}] User deleted: {user.username} on server {self.name}")
|
||||||
|
Reference in New Issue
Block a user