Commit 2f08a104 authored by reynaldi adriantama's avatar reynaldi adriantama

user management

parent 3bf8fe59
......@@ -12,11 +12,5 @@ urlpatterns = [
path('CheckByAddress', views.SearchLocation.as_view(), name='CheckByAddress'),
path('CheckByRadius', views.SearchRadius.as_view(), name='CheckByRadius'),
path('CheckByPolygon', views.SearchPolygon.as_view(), name='CheckByPolygon'),
<<<<<<< HEAD
# path('usermanagement', views.User.as_view(), name='User'),
=======
path('editkelurahan', edit.editkelurahan, name='edit_kel'),
>>>>>>> b0c9d3a5aeeba4afcaecade4a93365407e62fc2b
]
\ No newline at end of file
......@@ -28,5 +28,9 @@ urlpatterns = [
# path('myauth/', include('myauth.urls')),
path('login/', views.CustomLoginView.as_view(), name='login'),
path('logout/', views.CustomLogoutView.as_view(), name='logout'),
path('usermanagement/', views.Usermanagement.as_view(), name='usermanagement')
path('usermanagement/', views.Usermanagement.as_view(), name='usermanagement'),
path('adduser/', views.addUser, name="adduser"),
path('getallGroups/', views.listGroup, name="getallGroups"),
path('switchStatus/', views.deactivateUser, name="switchStatus"),
path('loadUserbyId/', views.loadUserbyId, name="loadUserbyId")
]
from decimal import Context
from typing import get_origin
from django.db.models.expressions import F
from django.http import response
from django.views import View, generic
from django.shortcuts import render
from django.contrib import messages
from django.contrib.auth.views import LoginView, LogoutView
from django.db import connection as conn
from django.db import connection as conn, models
from django.core import serializers
from django.contrib.auth.models import User,Group
from django.contrib.auth.hashers import make_password
from rest_framework import status
from rest_framework.decorators import api_view, renderer_classes
from rest_framework.response import Response
# Create your views here.
......@@ -26,7 +36,7 @@ class Usermanagement(generic.TemplateView):
def get(self, request):
with conn.cursor() as userlist_:
userlist_.execute("SELECT * from auth_user")
userlist_.execute("SELECT * from auth_user ORDER BY username ASC")
allUser = userlist_.fetchall()
......@@ -38,7 +48,7 @@ class Usermanagement(generic.TemplateView):
"name": rows[5] +" "+ rows[6],
"email": rows[7],
"isactive": rows[9],
"last login": rows[2]
"last": rows[2]
}
user_res.append(datas)
......@@ -47,5 +57,193 @@ class Usermanagement(generic.TemplateView):
'title' : 'user management',
'data' : user_res
}
print(context)
return render(request, self.template_name, context)
@api_view(('POST',))
def addUser(request):
if request.method == 'POST':
usernames = request.POST.get('username')
first_name = request.POST.get('first_name')
last_name = request.POST.get('last_name')
group = request.POST.get('group')
email = request.POST.get('email')
password = request.POST.get('username')
iduser = request.POST.get('id')
arrGroup = group.split("~")
user = User()
# user.save()
try:
if iduser:
with conn.cursor() as cursor:
cursor.execute("UPDATE auth_user SET first_name = '"+first_name+"', last_name = '"+last_name+"', email = '"+email+"' WHERE id="+iduser)
with conn.cursor() as curGroup:
curGroup.execute("DELETE FROM auth_user_groups WHERE user_id="+iduser)
users = User.objects.get(username=usernames)
for i in arrGroup:
insertgroups = Group.objects.get(name=i)
insertgroups.user_set.add(users)
data = {
"code" : 0,
"data" : "User telah diperbaharui.",
"info" : "success"
}
else:
user = User.objects.get(username=usernames)
data = {
"code" : 4,
"data" : "username telah tersedia, silahkan coba lagi.",
"info" : "failed"
}
except User.DoesNotExist:
user.username = usernames
user.first_name = first_name
user.last_name = last_name
user.email = email
user.password = make_password(password)
user.save()
# add user to group
userinsert = User.objects.get(username=usernames)
for i in arrGroup:
insertgroups = Group.objects.get(name=i)
insertgroups.user_set.add(userinsert)
data = {
"code" : 0,
"info" : "success",
"data" : "user "+usernames+" berhasil ditambahkan"
}
# data = {'sukses':'sukses'}
return Response(data)
@api_view(('POST',))
def listGroup(request):
if request.method == "POST":
groupList = Group.objects.all()
group = []
for g in groupList:
group.append(g.name)
if len(group) > 0:
data = {
"info" : "success",
"code" : 0,
"data" : group
}
else:
data = {
"info" : "group tidak tersedia",
"code" : 4,
"data" : group
}
return Response(data)
@api_view(('POST',))
def deactivateUser(request):
user = User()
if request.method == "POST":
ids = request.POST.get('id')
status = request.POST.get('stat')
isActive = loadUserStatus(ids)
# print(type(status)+status)
# print(type(True))
print(status == 'True')
if status == 'True':
sql = "f"
else:
sql = "t"
with conn.cursor() as cursor:
affected_row = cursor.execute("UPDATE auth_user SET is_active = '"+sql+"' WHERE id = "+ids)
print ("UPDATE auth_user SET is_active = '"+sql+"' WHERE id = "+ids)
print (affected_row)
if affected_row:
data = {
"info" : "success",
"code" : 0,
"data" : "User berhasil dinonaktifkan"
}
else:
data = {
"info" : "success",
"code" : 0,
"data" : "User berhasil dinonaktifkan"
}
return Response(data)
def loadUserStatus(id):
with conn.cursor() as cursor:
cursor.execute("SELECT is_active from auth_user WHERE id="+id+"")
resData = cursor.fetchall()
for i in resData:
isActive = i[0]
return isActive
@api_view(('POST',))
def loadUserbyId(request):
if request.method == "POST":
id = request.POST.get('id')
print(id)
with conn.cursor() as cursor:
cursor.execute("SELECT * FROM auth_user WHERE id ="+id)
result = cursor.fetchall()
group_res = loadGroupById(id)
user_res = []
for rows in result:
datas = {
"id" : rows[0],
"username" : rows[4],
"firstname": rows[5],
"lastname" : rows[6],
"email" : rows[7],
"isactive" : rows[9],
"last" : rows[2],
"group" : group_res
}
user_res.append(datas)
data = {
"info" : "success",
"code" : 0,
"data" : datas,
}
return Response(data)
def loadGroupById(iduser):
with conn.cursor() as cursor:
cursor.execute("select ag.name from auth_group ag, auth_user_groups aug WHERE aug.user_id = "+iduser+" AND ag.id = aug.group_id")
result = cursor.fetchall()
print(result)
resGroup = []
for i in result:
resGroup.append(i[0])
print(resGroup)
return resGroup
\ No newline at end of file
......@@ -28,7 +28,7 @@
<li><a href="#"><i class="icon-user-plus"></i> My profile</a></li>
<li><a href="#"><i class="icon-cog5"></i> Account settings</a></li>
<li class="divider"></li>
<li><a href="{% url 'logout' %}"><i class="icon-cog5"></i> Logout</a></li>
</ul>
</li>
</ul>
......
......@@ -240,7 +240,7 @@
{% include 'includes/navbar.html' %}
<div style="height: 605px;">
<div style="height: 93vh;">
{% block content %}
<div>
......
This diff is collapsed.
......@@ -124,7 +124,7 @@
<div class="page-content">
<!-- Main sidebar -->
<div class="sidebar sidebar-main" style="height: 607px;
<div class="sidebar sidebar-main" style="height: 95vh;
min-height: 607px;">
<div class="sidebar-content" style="height: 100%;">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment