1010from django .contrib .auth .decorators import login_required
1111from django .contrib .auth .hashers import check_password
1212from django .contrib import messages
13+ from django .contrib .auth .models import User
14+ from django .core .paginator import Paginator
15+ from apps .users .utils import user_filter
1316
1417# Create your views here.
1518
@@ -84,7 +87,63 @@ def change_password(request):
8487 if request .method == 'POST' :
8588 if check_password (request .POST .get ('current_password' ), user .password ):
8689 user .set_password (request .POST .get ('new_password' ))
90+ user .save ()
8791 messages .success (request , 'Password changed successfully' )
8892 else :
8993 messages .error (request , "Password doesn't match!" )
94+ return redirect (request .META .get ('HTTP_REFERER' ))
95+
96+
97+
98+ def user_list (request ):
99+ filters = user_filter (request )
100+ user_list = User .objects .filter (** filters )
101+ form = SignupForm ()
102+
103+ page = request .GET .get ('page' , 1 )
104+ paginator = Paginator (user_list , 5 )
105+ users = paginator .page (page )
106+
107+ if request .method == 'POST' :
108+ form = SignupForm (request .POST )
109+ if form .is_valid ():
110+ return post_request_handling (request , form )
111+
112+ context = {
113+ 'users' : users ,
114+ 'form' : form ,
115+ }
116+ return render (request , 'pages/apps/users.html' , context )
117+
118+
119+ @login_required (login_url = '/users/signin/' )
120+ def post_request_handling (request , form ):
121+ form .save ()
122+ return redirect (request .META .get ('HTTP_REFERER' ))
123+
124+ @login_required (login_url = '/users/signin/' )
125+ def delete_user (request , id ):
126+ user = User .objects .get (id = id )
127+ user .delete ()
128+ return redirect (request .META .get ('HTTP_REFERER' ))
129+
130+
131+ @login_required (login_url = '/users/signin/' )
132+ def update_user (request , id ):
133+ user = User .objects .get (id = id )
134+ if request .method == 'POST' :
135+ user .username = request .POST .get ('username' )
136+ user .first_name = request .POST .get ('first_name' )
137+ user .last_name = request .POST .get ('last_name' )
138+ user .email = request .POST .get ('email' )
139+ user .save ()
140+ return redirect (request .META .get ('HTTP_REFERER' ))
141+
142+
143+ @login_required (login_url = '/users/signin/' )
144+ def user_change_password (request , id ):
145+ user = User .objects .get (id = id )
146+ if request .method == 'POST' :
147+ user .set_password (request .POST .get ('password' ))
148+ user .save ()
90149 return redirect (request .META .get ('HTTP_REFERER' ))
0 commit comments