Skip to content

Commit

Permalink
utilities: Add Token Model
Browse files Browse the repository at this point in the history
  • Loading branch information
harshithpabbati committed Jun 10, 2020
1 parent 53edd66 commit 1ea0207
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 13 deletions.
9 changes: 7 additions & 2 deletions framework/platforms/cloudflare.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import CloudFlare
from framework import settings
from framework.platforms.userPlatform import UserPlatform
from utilities.models import Token

EMAIL_USER = settings.EMAIL_HOST_USER
CLOUDFLARE_TOKEN = settings.CLOUDFLARE_TOKEN
CLOUDFLARE_ZONE_ID = settings.CLOUDFLARE_ZONE_ID


class Cloudflare(UserPlatform):
Expand All @@ -17,6 +16,8 @@ def __init__(self, email, customEmail=None):
self.customEmail = customEmail

def removeUser(self):
CLOUDFLARE_TOKEN = Token.objects.values().get(key='CLOUDFLARE_TOKEN')['value']
CLOUDFLARE_ZONE_ID = Token.objects.values().get(key='CLOUDFLARE_ZONE_ID')['value']
cf = CloudFlare.CloudFlare(email=EMAIL_USER, token=CLOUDFLARE_TOKEN)
records = cf.zones.dns_records.get(CLOUDFLARE_ZONE_ID, params={'per_page': 50})
for record in records:
Expand Down Expand Up @@ -46,6 +47,8 @@ def removeUser(self):
pass

def addUser(self):
CLOUDFLARE_TOKEN = Token.objects.values().get(key='CLOUDFLARE_TOKEN')['value']
CLOUDFLARE_ZONE_ID = Token.objects.values().get(key='CLOUDFLARE_ZONE_ID')['value']
cf = CloudFlare.CloudFlare(email=EMAIL_USER, token=CLOUDFLARE_TOKEN)
records = cf.zones.dns_records.get(CLOUDFLARE_ZONE_ID, params={'per_page': 50})
for record in records:
Expand All @@ -66,6 +69,8 @@ def addUser(self):
break

def checkIfUserExists(self):
CLOUDFLARE_TOKEN = Token.objects.values().get(key='CLOUDFLARE_TOKEN')['value']
CLOUDFLARE_ZONE_ID = Token.objects.values().get(key='CLOUDFLARE_ZONE_ID')['value']
cf = CloudFlare.CloudFlare(email=EMAIL_USER, token=CLOUDFLARE_TOKEN)
records = cf.zones.dns_records.get(CLOUDFLARE_ZONE_ID, params={'per_page': 50})
for record in records:
Expand Down
7 changes: 4 additions & 3 deletions framework/platforms/github.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
from github import Github
from framework import settings
from framework.platforms.userPlatform import UserPlatform

GITHUB_TOKEN = settings.GITHUB_TOKEN
from utilities.models import Token


class GitHub(UserPlatform):
Expand All @@ -11,20 +9,23 @@ def __init__(self, username):
self.username = username

def removeUser(self):
GITHUB_TOKEN = Token.objects.values().get(key='GITHUB_TOKEN')['value']
g = Github(GITHUB_TOKEN)
ghuser = g.get_user(self.username)
org = g.get_organization('amfoss')
if org.has_in_members(ghuser):
org.remove_from_members(ghuser)

def addUser(self):
GITHUB_TOKEN = Token.objects.values().get(key='GITHUB_TOKEN')['value']
g = Github(GITHUB_TOKEN)
ghuser = g.get_user(self.username)
org = g.get_organization('amfoss')
if not org.has_in_members(ghuser):
org.add_to_members(ghuser, 'member')

def checkIfUserExists(self):
GITHUB_TOKEN = Token.objects.values().get(key='GITHUB_TOKEN')['value']
g = Github(GITHUB_TOKEN)
ghuser = g.get_user(self.username)
org = g.get_organization('amfoss')
Expand Down
7 changes: 4 additions & 3 deletions framework/platforms/gitlab.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import gitlab
from framework import settings
from framework.platforms.userPlatform import UserPlatform

GITLAB_TOKEN = settings.GITLAB_TOKEN
from utilities.models import Token


class GitLab(UserPlatform):
Expand All @@ -11,20 +9,23 @@ def __init__(self, username):
self.username = username

def removeUser(self):
GITLAB_TOKEN = Token.objects.values().get(key='GITLAB_TOKEN')['value']
gl = gitlab.Gitlab('https://gitlab.com/', GITLAB_TOKEN)
gl.auth()
group = gl.groups.get('amfoss')
userID = gl.users.list(username=self.username)[0].id
group.members.delete(userID)

def addUser(self):
GITLAB_TOKEN = Token.objects.values().get(key='GITLAB_TOKEN')['value']
gl = gitlab.Gitlab('https://gitlab.com/', GITLAB_TOKEN)
gl.auth()
group = gl.groups.get('amfoss')
userID = gl.users.list(username=self.username)[0].id
group.members.create({'user_id': userID, 'access_level': gitlab.GUEST_ACCESS})

def checkIfUserExists(self):
GITLAB_TOKEN = Token.objects.values().get(key='GITLAB_TOKEN')['value']
gl = gitlab.Gitlab('https://gitlab.com/', GITLAB_TOKEN)
gl.auth()
group = gl.groups.get('amfoss')
Expand Down
11 changes: 7 additions & 4 deletions framework/platforms/telegram.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
import telegram
from framework import settings
from framework.platforms.userPlatform import UserPlatform
from datetime import date

TELEGRAM_BOT_TOKEN = settings.TELEGRAM_BOT_TOKEN
TELEGRAM_CHAT_ID = settings.TELEGRAM_CHAT_ID
from utilities.models import Token


class Telegram(UserPlatform):
Expand All @@ -13,6 +10,8 @@ def __init__(self, telegram_id):
self.telegram_id = telegram_id

def removeUser(self):
TELEGRAM_BOT_TOKEN = Token.objects.values().get(key='TELEGRAM_BOT_TOKEN')['value']
TELEGRAM_CHAT_ID = Token.objects.values().get(key='TELEGRAM_CHAT_ID')['value']
bot = telegram.Bot(token=TELEGRAM_BOT_TOKEN)
try:
bot.kick_chat_member(chat_id=TELEGRAM_CHAT_ID, user_id=self.telegram_id)
Expand All @@ -24,6 +23,8 @@ def removeUser(self):
pass

def addUser(self):
TELEGRAM_BOT_TOKEN = Token.objects.values().get(key='TELEGRAM_BOT_TOKEN')['value']
TELEGRAM_CHAT_ID = Token.objects.values().get(key='TELEGRAM_CHAT_ID')['value']
bot = telegram.Bot(token=TELEGRAM_BOT_TOKEN)
user = bot.get_chat(chat_id=self.telegram_id)
message = 'Hi Admin, \n\n'
Expand All @@ -40,6 +41,8 @@ def addUser(self):
)

def checkIfUserExists(self):
TELEGRAM_BOT_TOKEN = Token.objects.values().get(key='TELEGRAM_BOT_TOKEN')['value']
TELEGRAM_CHAT_ID = Token.objects.values().get(key='TELEGRAM_CHAT_ID')['value']
bot = telegram.Bot(token=TELEGRAM_BOT_TOKEN)
try:
status = bot.get_chat_member(chat_id=TELEGRAM_CHAT_ID, user_id=self.telegram_id).status
Expand Down
25 changes: 24 additions & 1 deletion utilities/admin.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from django.contrib import admin
from .models import Mailer
from .models import Mailer, Token
from datetime import datetime


@admin.register(Mailer)
Expand All @@ -17,3 +18,25 @@ class MailerAdmin(admin.ModelAdmin):
)

list_display = ('name', 'form', 'generationEmailDate', 'generationEmailTime')


@admin.register(Token)
class TokenAdmin(admin.ModelAdmin):
fieldsets = (
('Token', {
'fields': (('key', 'value'),)
}),
('History', {
'fields': (('creator', 'creationTime'), ('lastEditor', 'lastEditTime'))
}),
)

list_display = ('key', 'lastEditor', 'lastEditTime')

def save_model(self, request, obj, form, change):
if not obj.creator:
obj.creator = request.user
obj.creationTime = datetime.now()
obj.lastEditor = request.user
obj.lastEditTime = datetime.now()
obj.save()
17 changes: 17 additions & 0 deletions utilities/models.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from django.db import models
from registration.models import Form
from ckeditor.fields import RichTextField
from django.contrib.auth.models import User


class Mailer(models.Model):
Expand All @@ -17,3 +18,19 @@ class Meta:

def __str__(self):
return self.name


class Token(models.Model):
key = models.CharField(max_length=50)
value = models.CharField(max_length=100)
creator = models.ForeignKey(User, on_delete=models.PROTECT, related_name='TokenCreator', blank=True, null=True)
creationTime = models.DateTimeField(null=True, blank=True)
lastEditor = models.ForeignKey(User, on_delete=models.SET_NULL, related_name='TokenLastEditor', blank=True, null=True)
lastEditTime = models.DateTimeField(null=True, blank=True)

class Meta:
verbose_name_plural = "Tokens"
verbose_name = "Token"

def __str__(self):
return self.key

0 comments on commit 1ea0207

Please sign in to comment.