@@ -30,20 +30,23 @@ def authenticate_user(request, username=None, password=None):
3030 'id' : user .id ,
3131 'user_id' : user .email ,
3232 'password' : user .password ,
33- 'admin' : user .is_admin
33+ 'admin' : user .is_admin ,
34+ 'user_account_status' :user .user_account_status
3435 }
3536 else :
3637 return None
3738
3839
39- def update_user (request , user_id , email = None , password = None , is_admin = None ):
40+ def update_user (request , user_id , email = None , password = None , is_admin = None , user_account_status = None ):
4041 user = {}
4142 if email is not None :
4243 user ['email' ] = email
4344 if password is not None :
4445 user ['password' ] = bcrypt .hashpw (password , bcrypt .gensalt ())
4546 if is_admin is not None :
4647 user ['is_admin' ] = is_admin
48+ if user_account_status is not None :
49+ user ['user_account_status' ] = user_account_status
4750
4851 return db .update_user (request .db_session , id = user_id , updated_user = user )
4952
@@ -126,14 +129,15 @@ def search_users(request, email=None, limit=20, offset=0, order='desc', sort='na
126129 return total , users
127130
128131
129- def register (request , username = None , password = None ):
132+ def register (request , username = None , password = None , user_account_status = None , email_confirmation_code = None ):
130133 if db .get_user (request .db_session , username ):
131134 raise BadRequest (request , error_code = ErrorCodes .Validation .UserAlreadyExists , args = username )
132135
133- return add_user (request , email = username , password = password )
136+ return add_user (request , email = username , password = password , user_account_status = user_account_status ,
137+ email_confirmation_code = email_confirmation_code )
134138
135139
136- def add_user (request , email = None , password = "graphspace_public_user" , is_admin = 0 ):
140+ def add_user (request , email = None , password = "graphspace_public_user" , is_admin = 0 , user_account_status = None , email_confirmation_code = None ):
137141 """
138142 Add a new user. If email and password is not passed, it will create a user with default values.
139143 By default a user has no admin access.
@@ -146,7 +150,8 @@ def add_user(request, email=None, password="graphspace_public_user", is_admin=0)
146150 """
147151 email = "public_user_%s@graphspace.com" % generate_uid (size = 10 ) if email is None else email
148152
149- return db .add_user (request .db_session , email = email , password = bcrypt .hashpw (password , bcrypt .gensalt ()), is_admin = is_admin )
153+ return db .add_user (request .db_session , email = email , password = bcrypt .hashpw (password , bcrypt .gensalt ()), is_admin = is_admin ,
154+ user_account_status = user_account_status , email_confirmation_code = email_confirmation_code )
150155
151156
152157def is_member_of_group (request , username , group_id ):
@@ -290,6 +295,9 @@ def delete_group_graph(request, group_id, graph_id):
290295def get_password_reset_by_code (request , code ):
291296 return db .get_password_reset_by_code (request .db_session , code )
292297
298+ def get_email_confirmation_code (request , code ):
299+ return db .get_email_confirmation_code (request .db_session , code )
300+
293301
294302def delete_password_reset_code (request , id ):
295303 return db .delete_password_reset (request .db_session , id )
@@ -312,3 +320,11 @@ def send_password_reset_email(request, password_reset_code):
312320 email_from = "GraphSpace Admin"
313321
314322 return send_mail (mail_title , message , email_from , [password_reset_code .email ], fail_silently = False )
323+
324+ def send_confirmation_email (request , email , token ):
325+ # Construct email message
326+ mail_title = 'Activate your account for GraphSpace!'
327+ message = 'Please confirm your email address to complete the registration ' + settings .URL_PATH + 'activate_account/?activation_code=' + token
328+ email_from = "GraphSpace Admin"
329+
330+ return send_mail (mail_title , message , email_from , [email ], fail_silently = False )
0 commit comments