def GetLoginDetails(request): encdec = Encrypt() try: if "details" in request.session.keys(): token = request.session["details"] UpdateLoggedInUsersDict(token['loginid']) return {"userid":token['userid'],"groupid":token['groupid'],"loginid": encdec.decrypt(token['loginid']),} else: return {"userid":-1} except: LOGGERUSER.exception('EXCEPTION IN GetLoginDetails') return {"userid":-1}
def Login(HttpRequest): usrfn = UserFnx() ip = HttpRequest.META["REMOTE_ADDR"] try: email = "" password = "" flag = 0 if "LoginUser_email" in HttpRequest.POST.keys(): email = HttpRequest.POST["LoginUser_email"] else: messages.error(HttpRequest, "ERROR : Email required for logging in.") flag = 1 # TODO check if this is a valid email id or not if "LoginUser_pass" in HttpRequest.POST.keys(): password = HttpRequest.POST["LoginUser_pass"] else: messages.error(HttpRequest, "ERROR : Password required for logging in.") flag = 1 if len(password) < 4: messages.error(HttpRequest, "ERROR : Minimum password length should be 4.") flag = 1 if flag is 1: return HttpResponseRedirect("/user/login/") else: res = usrfn.LoginUser(email, password, Login_From_Type, ip) if res[0] == 1: result = res[1] if result["result"] == 1: encdec = Encrypt() token = { "userid": result["userid"], "groupid": result["groupid"], "loginid": encdec.encrypt(str(result["loginid"])), "fname": result["username"], } HttpRequest.session["details"] = token return HttpResponseRedirect("/userprofile/UserProfile/StudentDetails/") else: messages.error(HttpRequest, res[1]) return HttpResponseRedirect("/message/") else: messages.error(HttpRequest, res[1]) return HttpResponseRedirect("/message/") except Exception, ex: frame = inspect.currentframe() args, _, _, values = inspect.getargvalues(frame) msg = "" for i in args: msg += "[%s : %s]" % (i, values[i]) LoggerUser.exception("%s : %s" % (inspect.getframeinfo(frame)[2], msg)) messages.error(HttpRequest, "ERROR: " + str(ex)) return HttpResponseRedirect("/message/")
def GetLoginDetails(request): encdec = Encrypt() # obj=User.objects.get(UserEmail='*****@*****.**') # return {"userid":obj.id,"groupid":obj.Group.id,"loginid": 1,"fname":obj.UserFirstName,} try: if "details" in request.session.keys(): token = request.session["details"] #UpdateLoggedInUsersDict(token['loginid']) return {"userid":token['userid'],"groupid":token['groupid'],"loginid": encdec.decrypt(token['loginid']),"fname":token['fname'],} else: return {"userid":-1} except: LOGGERUSER.exception('EXCEPTION IN GetLoginDetails') return {"userid":-1}
def _RegisterUserFromSiteSystem(self): try: msg = '' msglist = [] enc_dec = Encrypt() StateActiveObj = SecurityStates.objects.get(StateName=SYSTEM_STATE_ACTIVE,StateDescription=SYSTEM_STATE_ACTIVE) SystemInsertPermissionObject = SecurityPermissions.objects.get(PermissionName=SYSTEM_PERMISSION_INSERT) SYSTEM_STATE_USER_REGISTER_Object = SecurityStates.objects.get(StateName=SYSTEM_STATE_USER_REGISTER,StateDescription=SYSTEM_STATE_USER_REGISTER) SYSTEM_PERMISSION_EMAIL_AUObject = SecurityPermissions.objects.get(PermissionName=SYSTEM_PERMISSION_EMAIL_AU) SYSTEM_STATE_USER_EMAIL_AUObject = SecurityStates.objects.get(StateName=SYSTEM_STATE_USER_EMAIL_AU,StateDescription=SYSTEM_STATE_USER_EMAIL_AU) # GROUP GroupTypeObj,created = GroupType.objects.get_or_create(GroupTypeName=SYSTEM_GROUPTYPE,GroupTypeDescription=SYSTEM_GROUPTYPE) EntityObj,created = Entity.objects.get_or_create(EntityName=SYSTEM_ENTITY,EntityDescription=SYSTEM_ENTITY) Group_CREATEUSERDAEMON_Obj,created = Group.objects.get_or_create(GroupName=SYSTEM_CREATEUSERDAEMON_GROUP,GroupDescription=SYSTEM_CREATEUSERDAEMON_GROUP,GroupType=GroupTypeObj,GroupEntity=EntityObj,State=StateActiveObj) msg = 'OBJECT = %s, RESULT = %s\t%s'%("Group",Group_CREATEUSERDAEMON_Obj.GroupName,created) self.SecurityLogger.debug('[%s] %s'%('_RegisterUserFromSiteSystem',msg)) msglist.append(msg) Group_SYSTEM_DAEMON_CREATE_USER_GROUP_Obj,created = Group.objects.get_or_create(GroupName=SYSTEM_DAEMON_CREATE_USER_GROUP,GroupDescription=SYSTEM_DAEMON_CREATE_USER_GROUP,GroupType=GroupTypeObj,GroupEntity=EntityObj,State=StateActiveObj) msg = 'OBJECT = %s, RESULT = %s\t%s'%("Group",Group_SYSTEM_DAEMON_CREATE_USER_GROUP_Obj.GroupName,created) self.SecurityLogger.debug('[%s] %s'%('_RegisterUserFromSiteSystem',msg)) msglist.append(msg) Group_SYSTEM_DAEMON_USERAU_USER_GROUP_Obj,created = Group.objects.get_or_create(GroupName=SYSTEM_DAEMON_USERAU_USER_GROUP,GroupDescription=SYSTEM_DAEMON_USERAU_USER_GROUP,GroupType=GroupTypeObj,GroupEntity=EntityObj,State=StateActiveObj) msg = 'OBJECT = %s, RESULT = %s\t%s'%("Group",Group_SYSTEM_DAEMON_USERAU_USER_GROUP_Obj.GroupName,created) self.SecurityLogger.debug('[%s] %s'%('_RegisterUserFromSiteSystem',msg)) msglist.append(msg) #get content type of Users_user ctlist = ContentType.objects.all() ctype = ContentType() for x in ctlist: if x.app_label == 'Users' and x.model == 'user': ctype = x Obj,created = SecurityGroupContent.objects.get_or_create(Group=Group_CREATEUSERDAEMON_Obj.id,ContentType=ctype,Permission=SystemInsertPermissionObject,State=SYSTEM_STATE_USER_REGISTER_Object,Active=1) msg = 'OBJECT = %s, RESULT = %s\t%s'%(ctype.name,"object",created) self.SecurityLogger.debug('[%s] %s'%('_RegisterUserFromSiteSystem',msg)) msglist.append(msg) Obj,created = SecurityGroupContent.objects.get_or_create(Group=Group_SYSTEM_DAEMON_CREATE_USER_GROUP_Obj.id,ContentType=ctype,Permission=SYSTEM_PERMISSION_EMAIL_AUObject,State=SYSTEM_STATE_USER_EMAIL_AUObject,Active=1) msg = 'OBJECT = %s, RESULT = %s\t%s'%(ctype.name,"object",created) self.SecurityLogger.debug('[%s] %s'%('_RegisterUserFromSiteSystem',msg)) msglist.append(msg) Obj,created = User.objects.get_or_create(UserEmail=SYSTEM_DAEMON_CREATE_USER,UserPassword=enc_dec.encrypt(SYSTEM_DAEMON_CREATE_USER),UserBirthDate=datetime.date.today(),UserFirstName='UserFirstName',UserMiddleName='UserMiddleName',UserLastName='UserLastName',UserEntity=EntityObj,State=StateActiveObj,UserGender='S',Group=Group_CREATEUSERDAEMON_Obj) msg = 'OBJECT = %s, RESULT = %s\t%s'%(Obj.UserEmail,"object",created) self.SecurityLogger.debug('[%s] %s'%('_RegisterUserFromSiteSystem',msg)) msglist.append(msg) return (1,str(msglist)) except: msg = "== EXCEPTION ==" self.SecurityLogger.exception('[%s] %s'%('_RegisterUserFromSiteSystem',msg)) return (-1,'Error occured in RegisterUserFromSiteSystem')
def _DefaultUserSystem(self): StateActiveObj = SecurityStates.objects.get(StateName=SYSTEM_STATE_ACTIVE,StateDescription=SYSTEM_STATE_ACTIVE) enc_dec = Encrypt() try: msg = '' msglist = [] # ENTITY EntityObj,created = Entity.objects.get_or_create(EntityName=SYSTEM_ENTITY,EntityDescription=SYSTEM_ENTITY) msg = 'OBJECT = %s, RESULT = %s\t%s'%("ENTITY",EntityObj.EntityName,created) self.SecurityLogger.debug('[%s] %s'%('_DefaultUserSystem',msg)) msglist.append(msg) # GROUP TYPE GroupTypeObj,created = GroupType.objects.get_or_create(GroupTypeName=SYSTEM_GROUPTYPE,GroupTypeDescription=SYSTEM_GROUPTYPE) msg = 'OBJECT = %s, RESULT = %s\t%s'%("GroupType",GroupTypeObj.GroupTypeName,created) self.SecurityLogger.debug('[%s] %s'%('_DefaultUserSystem',msg)) msglist.append(msg) GroupTypeObj,created = GroupType.objects.get_or_create(GroupTypeName=SYSTEM_USERDEFINED_GROUPTYPE,GroupTypeDescription=SYSTEM_USERDEFINED_GROUPTYPE) msg = 'OBJECT = %s, RESULT = %s\t%s'%("GroupType",GroupTypeObj.GroupTypeName,created) self.SecurityLogger.debug('[%s] %s'%('_DefaultUserSystem',msg)) msglist.append(msg) # GROUP GroupObj,created = Group.objects.get_or_create(GroupName=SYSTEM_GROUP,GroupDescription=SYSTEM_GROUP,GroupType=GroupTypeObj,GroupEntity=EntityObj,State=StateActiveObj) msg = 'OBJECT = %s, RESULT = %s\t%s'%("Group",GroupObj.GroupName,created) self.SecurityLogger.debug('[%s] %s'%('_DefaultUserSystem',msg)) msglist.append(msg) # USER UserObj,created = User.objects.get_or_create(UserEmail=SYSTEM_INIT_USER,UserPassword=enc_dec.encrypt(SYSTEM_INIT_USER),UserBirthDate=datetime.date.today(),UserFirstName='UserFirstName',UserMiddleName='UserMiddleName',UserLastName='UserLastName',UserEntity=EntityObj,State=StateActiveObj,UserGender='S',Group=GroupObj) msg = 'OBJECT = %s, RESULT = %s\t%s'%("User",UserObj.UserEmail,created) self.SecurityLogger.debug('[%s] %s'%('_DefaultUserSystem',msg)) msglist.append(msg) # LOGIN TYPE LoginTypeObj,created = LoginType.objects.get_or_create(LoginTypeName=SYSTEM_LOGINTYPE,LoginTypeDesc=SYSTEM_LOGINTYPE) msg = 'OBJECT = %s, RESULT = %s\t%s'%("LoginType",LoginTypeObj.LoginTypeName,created) self.SecurityLogger.debug('[%s] %s'%('_DefaultUserSystem',msg)) msglist.append(msg) return (1,str(msglist)) except: msg = "== EXCEPTION ==" self.SecurityLogger.exception('[%s] %s'%('_DefaultUserSystem',msg)) return (-1,'Error occured in DefaultUserSystem')
def __init__(self): self.encrypt = Encrypt() self.UserLogger = logging.getLogger(LoggerUser)
class UserFnx(): def __init__(self): self.encrypt = Encrypt() self.UserLogger = logging.getLogger(LoggerUser) def AuthenticateUserFromSite(self,emailid,ip): try: to_emailid = self.encrypt.decrypt(emailid) s = to_emailid.split('___') userid = int(s[0]) # get the user user_obj = User.objects.get(id=userid) self.UserLogger.debug('userid = %d, userid from token %d' % (user_obj.id, userid)) if( user_obj is None ): self.UserLogger.exception('user does not exists') return -1 groupid = getSystemGroup_EmailAU(); if( groupid == -1): self.UserLogger.exception('group id is -1') return -1 details = { 'email':user_obj.UserEmail, 'pass':user_obj.UserPassword, 'bday':str(user_obj.UserBirthDate), 'fname':user_obj.UserFirstName, 'mname':user_obj.UserMiddleName, 'lname':user_obj.UserLastName, 'entity':user_obj.UserEntity.id, 'gender':user_obj.UserGender, 'LogsDesc':'UserAuthenticationByEmail', 'PreviousState':'UserAuthenticationByEmail', 'group':groupid, 'op':SYSTEM_PERMISSION_EMAIL_AU, 'by':userid, 'ip':ip, } self.UserLogger.debug('userid = %d, details = %s' % (userid, str(details))) result = DBUpdateUser(details) self.UserLogger.debug('result = %s' % (result)) return (1,result) except: exception_log = ('[%s] %s,%s')%('AuthenticateUserFromSite',ip,emailid) self.UserLogger.exception(exception_log) return (-1,'error in authenticating user') def InsertUser(self,email,password,fname,mname,lname,gender,bday,entity,group,by,ip,op=SYSTEM_PERMISSION_INSERT): try: user = {'email':email, 'pass':self.encrypt.encrypt(password), 'fname':fname, 'lname':lname, 'mname':mname, 'gender':gender, 'bday':str(bday), #date 'entity':entity, 'group':group, 'op':op, 'by':by, 'ip':ip} result = DBInsertUser(user) if ( result['result'] == 1): self.send_mail_test(email,result['rescode'],fname,ip) return (1,result) except: exception_log = ('[%s] %s,%s')%('InsertUserFromSite',ip,email) self.UserLogger.exception(exception_log) return (-1,'error in inserting user') def UpdateUser(self,email,password,bday,fname,mname,lname,entity,gender,group,by,ip,op=SYSTEM_PERMISSION_UPDATE): try: # to_emailid = self.encrypt.decrypt(emailid) # user_obj = User.objects.get(id=userid) # self.UserLogger.debug('userid = %d, userid from token %d' % (user_obj.id, userid)) # self.UserLogger.exception('group id is -1') # return -1 # details = { # 'email':email, # 'pass':password, # 'bday':str(bday), # 'fname':fname, # 'mname':mname, # 'lname':lname, # 'entity':user_obj.UserEntity.id, # 'gender':gender, # 'LogsDesc':'UserAuthenticationByEmail', # 'PreviousState':'UserAuthenticationByEmail', # 'group':groupid, # 'op':SYSTEM_PERMISSION_EMAIL_AU, # 'by':userid, # 'ip':ip, # } # self.UserLogger.debug('userid = %d, details = %s' % (userid, str(details))) # result = DBUpdateUser(details) # self.UserLogger.debug('result = %s' % (result)) return (1,'') except: exception_log = ('[%s] %s,%s')%('AuthenticateUserFromSite',ip,emailid) self.UserLogger.exception(exception_log) return (-1,'error in authenticating user') ################################################################## def ResetPass(self,password,user_obj,_LogsDesc,_PreviousState,by,ip,op=SYSTEM_PERMISSION_UPDATE): try: details = { 'email':user_obj.UserEmail, 'pass':password, 'bday':str(user_obj.UserBirthDate), 'fname':user_obj.UserFirstName, 'mname':user_obj.UserMiddleName, 'lname':user_obj.UserLastName, 'entity':user_obj.UserEntity.id, 'gender':user_obj.UserGender, 'LogsDesc':_LogsDesc, 'PreviousState':_PreviousState, 'group':user_obj.Group.id, 'op':op, 'by':by, 'ip':ip, } result = DBUpdateUser(details) self.UserLogger.debug('result = %s' % (result)) return (1,result) except: exception_log = ('[%s] %s')%('ResetPass',ip) self.UserLogger.exception(exception_log) return (-1,'error in ResetPass') # do not send encrypted passes def ChangePassword(self,oldpass,newpass,by,ip,userid=-1,op=SYSTEM_PERMISSION_UPDATE): try: if len(oldpass) < 4 or len(newpass) < 4: self.UserLogger.debug('Error, length less than 4 oldpass = %s, newpass = %s, ip = %s , userid = %d' % (oldpass,newpass,ip,userid)) return (-1,'ERROR: Length of password should be atleast 4') oldpass = self.encrypt.encrypt(oldpass) newpass = self.encrypt.encrypt(newpass) user_obj = User() if userid == -1: self.UserLogger.debug('Error, no userid or emailid provided oldpass = %s, newpass = %s, ip = %s , userid = %d' % (oldpass,newpass,ip,userid)) return (-1,'ERROR: either pass userid or emailid') user_obj = User.objects.get(id=userid) if user_obj is None: self.UserLogger.debug('Error,no user object retrieved oldpass = %s, newpass = %s, ip = %s , emailid = %s, userid = %d' % (oldpass,newpass,ip,str(emailid),userid)) return (-1,'ERROR: No such user exists') if user_obj.UserPassword != oldpass: self.UserLogger.debug('Error,Old Pasword does not match oldpass = %s, newpass = %s, ip = %s , userid = %d' % (oldpass,newpass,ip,userid)) return (-1,'ERROR: Old Pasword does not match') PreviousState = "{oldpass:"******"}" LogsDesc = 'Changed Password' return self.ResetPass(newpass,user_obj,LogsDesc,PreviousState,by,ip,op=SYSTEM_PERMISSION_UPDATE) except: exception_log = ('[%s] %s,%d')%('ChangePassword',ip,userid) self.UserLogger.exception(exception_log) return (-1,'error in Changing password') def ForgetPassword(self,emailid,by,ip,op=SYSTEM_PERMISSION_UPDATE): try: user_obj = User() user_obj = User.objects.get(UserEmail=emailid) if by == -1: by = user_obj.id if user_obj is None: self.UserLogger.debug('Error,no user object retrieved') return (-1,'ERROR: No such user exists') PreviousState = "{oldpass:"******"}" LogsDesc = 'Forget Password' import random password = str(random.randint(100000,999999)) # send an email self.send_email_forget_pass(emailid,password) #generate a new password self.UserLogger.exception("password reset for " + emailid + " new password is " + str(password)) return self.ResetPass(self.encrypt.encrypt(password),user_obj,LogsDesc,PreviousState,by,ip,op=SYSTEM_PERMISSION_UPDATE) except: exception_log = ('[%s] %s,%s')%('ForgetPassword',ip,emailid) self.UserLogger.exception(exception_log) return (-1,'error in Changing password') def LoginUser(self,email,password,_type,ip): try: details = {'email':email, 'pass':self.encrypt.encrypt(password), 'login_type':_type, 'ip':ip, } #print self.encrypt.encrypt(password) result = DBLoginUser(details) if( int(result['result']) >= 1): #MakeGroupMenu(result['groupid']) AddLoginIdToLoggedInUsersDict(self.encrypt.encrypt(str(result['loginid']))) return(result, decode(int(result['result']),result['rescode'])) else: return(result, decode(int(result['result']),result['rescode'])) except: exception_log = ('[%s] %s,%s %s %s')%('LoginUser',ip,email,_type,self.encrypt.encrypt(password)) self.UserLogger.exception(exception_log) return (-1,'Something un-usual has happened while processing your request. Administrators have been alerted to rectify the error. We will send you a notification in this regard soon') def LogoutUser(self,loginid,out_from): try: details = {'loginid':self.encrypt.decrypt(loginid), 'logout_from':out_from, } result = DBLogoutUser(details) if (result['result'] == 1 ): ClearLoginIdFromLoggedInUsersDict(self.encrypt.encrypt(str(details['loginid']))) return result except: exception_log = ('[%s] %s')%('LogoutUser',loginid) self.UserLogger.exception(exception_log) return (-1,'Something un-usual has happened while processing your request. Administrators have been alerted to rectify the error. We will send you a notification in this regard soon') def send_mail_test(self,email,userid,fname,ip): try: token= self.encrypt.encrypt(str(userid) + '___' + email) import time refs = int(time.time()) token="http://labs-nitin.thoughtxplore.com/user/authenticate/email/"+token+"/" + str(refs) + "/" sendMail([ "*****@*****.**"],"*****@*****.**","authenticate",token) except: pass def getAllUsers(self): try: UsersList = User.objects.all() self.UserLogger.debug('[%s] %s'%('getAllUsers',str(len(UsersList)))) return (1,UsersList) except: exception_log = ('[%s]')%('getAllUsers') self.UserLogger.exception(exception_log) return (-1,[]) def send_email_forget_pass(self,email,password): try: import time refs = int(time.time()) token= "password reset for " + email + " <br />new password is " + str(password) sendMail([ "*****@*****.**"],"*****@*****.**","authenticate",token) except: pass def getUserObjectByEmailid(self,emailid): try: return User.objects.get(UserEmail=emailid) except: exception_log = ('[%s] emailid = %s')%('getUserObjectByEmailid',emailid) self.UserLogger.exception(exception_log) return None def getUserObjectByUserId(self,UserId): try: return User.objects.get(id=UserId) except: exception_log = ('[%s] UserId = %d')%('getUserObjectByUserId',UserId) self.UserLogger.exception(exception_log) return None
def __init__(self): self.encrypt = Encrypt() self.UserLogger = logging.getLogger(LoggerUser) self.ExceptionMessage = "Something un-usual has happened while processing your request. Administrators have been alerted to rectify the error. We will send you a notification in this regard soon"
class UserFnx(): def __init__(self): self.encrypt = Encrypt() self.UserLogger = logging.getLogger(LoggerUser) self.ExceptionMessage = "Something un-usual has happened while processing your request. Administrators have been alerted to rectify the error. We will send you a notification in this regard soon" def MakeExceptionMessage(self,msg): return 'Exception Generated : ' + str(msg) + ' Administrators have been alerted to rectify the error. We will send you a notification in this regard soon.' ##################### HELPER FUNCTIONS ################################### def fetch_url(self,url,params): params=urllib.urlencode(params) f = urllib.urlopen(url+"?"+params) return (f.read(), f.code) ##################### HELPER FUNCTIONS ################################### def RegisterUserForForums(self,email,password): import httplib, urllib, urllib2 url = "http://forum.thoughtxplore.com/signup_TX" secret= 'A2lx135sVzm$803A88' params = {'user':email,'pass':str(password),'email':email, 'secret':secret} [content, response_code] = self.fetch_url(url, params) self.UserLogger.debug("FORUMS REG - %s , %s"%(email,str(response_code))) if(response_code==200): return (1, "User has been successfully registered for forums") else: self.UserLogger.exception('Error in RegisterUserForForums , Response Code is - %d'%(response_code)) return (-2,self.MakeExceptionMessage(str(response_code))) def ResetPswdforForums(self,email,password): import httplib, urllib, urllib2 url = "http://forum.thoughtxplore.com/pswdchange_TX" secret= 'A2lx135sVzm$803A88' params = {'user':email,'pass':password,'secret':secret} [content, response_code] = self.fetch_url(url, params) self.UserLogger.debug("FORUMS REG - %s , %s"%(email,str(response_code))) if(response_code==200 ): #print content return (1, "Password has been has been successfully changed for forums") else: self.UserLogger.exception('Error in RegisterUserForForums , Response Code is - %d'%(response_code)) return (-2,self.MakeExceptionMessage(str(response_code))) def InsertUser(self,email,password,fname,mname,lname,gender,bday,entity,group,by,ip,op=SYSTEM_PERMISSION_INSERT): try: user = {'email':email, 'pass':self.encrypt.encrypt(password), 'fname':fname, 'lname':lname, 'mname':mname, 'gender':gender, 'bday':str(bday), #date 'entity':entity, 'group':group, 'op':op, 'by':by, 'ip':ip } result = DBInsertUser(user) if ( result['result'] == 1): msg = "Your profile has been sucessfully created.Please check your email for activation link." self.SendAuthenticationEmail(email,result['rescode'],fname,ip) return (1,msg) else: return (-1,decode(result)) except Exception, ex: frame = inspect.currentframe() args, _, _, values = inspect.getargvalues(frame) msg = '' for i in args: msg += "[%s : %s]" % (i,values[i]) self.UserLogger.exception('%s : %s' % (inspect.getframeinfo(frame)[2],msg)) return (-2,self.MakeExceptionMessage(str(ex)))