-
Notifications
You must be signed in to change notification settings - Fork 68
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Started implementing chat via vuejs + typescript
Added webpack config Refactored django so it authorizes via header
- Loading branch information
Showing
32 changed files
with
13,593 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
from django.conf import settings | ||
from django.contrib.auth.models import AnonymousUser | ||
from importlib import import_module | ||
from redis_sessions.session import SessionStore | ||
|
||
from chat.models import User | ||
|
||
sessionStore = SessionStore() | ||
|
||
|
||
class AuthorizationMiddleware(object): | ||
""" | ||
Middleware to set user cookie | ||
If user is authenticated and there is no cookie, set the cookie, | ||
If the user is not authenticated and the cookie remains, delete it | ||
""" | ||
def __init__(self): | ||
engine = import_module(settings.SESSION_ENGINE) | ||
self.SessionStore = engine.SessionStore | ||
|
||
def process_request(self, request): | ||
session_key = request.META.get('HTTP_SESSION_ID', None) | ||
if not hasattr(request, 'user'): | ||
if sessionStore.exists(session_key): | ||
request.session = SessionStore(session_key) | ||
user_id = int(request.session["_auth_user_id"]) | ||
request.user = User.objects.get(id=user_id) | ||
else: | ||
request.user = AnonymousUser() | ||
# TODO | ||
request.session = SessionStore() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
interface RootState { | ||
isOnline: boolean; | ||
growls: string[]; | ||
} | ||
|
||
interface MessageDb { | ||
id: number; | ||
time: number; | ||
content: string; | ||
symbol: string; | ||
deleted: number; | ||
giphy: string; | ||
edited: number; | ||
roomId: number; | ||
userId: number; | ||
} | ||
|
||
interface FileModel { | ||
id: number; | ||
url: string; | ||
type: string; | ||
preview: string; | ||
} | ||
|
||
interface MessageModel { | ||
id: number; | ||
time: number; | ||
files: Map<number, FileModel>; | ||
content: string; | ||
symbol: string; | ||
deleted: boolean; | ||
giphy: string; | ||
edited: number; | ||
roomId: number; | ||
userId: number; | ||
} | ||
|
||
|
||
interface IStorage { | ||
getIds(cb: ObjectCb); | ||
saveMessages(messages: MessageModel[]); | ||
deleteMessage(id: number); | ||
clearStorage(); | ||
connect(cb: Function); | ||
getRoomHeaderId(roomId: number, cb: NumberCb); | ||
setRoomHeaderId(roomId: number, value: number); | ||
} | ||
|
||
interface ObjectCb { | ||
(t: object): void; | ||
} | ||
|
||
interface NumberCb { | ||
(t: number): void; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
|
||
<head> | ||
<meta charset="utf-8"> | ||
<meta http-equiv="x-ua-compatible" content="ie=edge"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1"> | ||
<title>pychat</title> | ||
|
||
</head> | ||
|
||
<body> | ||
|
||
<div id="app"></div> | ||
<script src="/dist/main.js"></script> | ||
|
||
</body> | ||
|
||
</html> |
Oops, something went wrong.