This commit is contained in:
resicovenba 2017-11-28 17:38:38 +05:30
commit 94bc33327b
5 changed files with 329 additions and 11 deletions

View File

@ -0,0 +1,82 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
// This can be removed if you use __autoload() in config.php OR use Modular Extensions
/** @noinspection PhpIncludeInspection */
require_once APPPATH . '/libraries/REST_Controller.php';
/**
* This is an example of a few basic user interaction methods you could use
* all done with a hardcoded array
*
* @package CodeIgniter
* @subpackage Rest Server
* @category Controller
* @author
* @license MIT
* @link
*/
class Forget_Controller extends REST_Controller {
function __construct()
{
// Construct the parent class
parent::__construct();
// Configure limits on our controller methods
// Ensure you have created the 'limits' table and enabled 'limits' within application/config/rest.php
$this->methods['forgetlogin_get']['limit'] = 500; // 500 requests per hour per user/key
$this->methods['forgetlogin_post']['limit'] = 500; // 500 requests per hour per user/key
$this->methods['forgetlogin_delete']['limit'] = 50; // 50 requests per hour per user/key
$this->load->model('Forgot_model', 'forgot_model');
}
public function forgetlogin_post()
{
//$userMobile = $this->post('userMobile');
$details['MobileNumber'] = $this->post('userMobile');
// $details['Password'] = $this->post('password');
function generateRandomString($length = 8) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$charactersLength = strlen($characters);
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, $charactersLength - 1)];
}
return $randomString;
}
$password= generateRandomString();
$details['Password'] = md5($password);
$loginDetails = $this->forgot_model->forget($details, $password);// Check if the users data store contains users (in case the database result returns NULL)
if ($loginDetails)
{
$loginDetails['status'] = REST_Controller::HTTP_OK;
//Set the response and exit
$this->response($loginDetails, REST_Controller::HTTP_OK); // OK (200) being the HTTP response code
}
else
{
// Set the response and exit
$this->response([
'message' => 'No users were found',
'status' => REST_Controller::HTTP_NOT_FOUND
], REST_Controller::HTTP_NOT_FOUND); // NOT_FOUND (404) being the HTTP response code
}
}
}

View File

@ -0,0 +1,138 @@
<?php
/**
* Created by PhpStorm.
* User: karthi
* Date: 11/9/17
* Time: 5:28 PM
*/
defined('BASEPATH') OR exit('No direct script access allowed');
class Forgot_model extends CI_Model {
/*
* get user login details
* params:email,password
* created by karthi
* */
/*
* Default login venba@123 -> 7594aacdb21d8a9b29f71ea9163a5730
*/
//
function forget($user=null, $password)
{
$this->db->select('ID,Emailid,MobileNumber,Password');
$this->db->where('MobileNumber', $user['MobileNumber']);
$forgotDetails = $this->db->get('T_Login')->first_row();
//print_r ($forgotDetails) ;
//exit();
// $result = $query->result_array();
if($forgotDetails){
$existUserID=$forgotDetails->ID;
$this->db->where('ID', $existUserID);
$upatePassword=$this->db->update('T_Login', $user);
// print_r ($upatePassword) ;
//exit();
if($upatePassword) {
$result['forgotstatus'] = true;
$result['resPass'] = $password;
$result['message'] = "Password updated successfully";
}
else{
$result['forgotstatus'] = false;
$result['message'] = "Something went wrong!";
}
}
else {
$result['forgotstatus'] = false;
$result['message'] = "User is not exist!";
}
return $result;
}
// public function change_Password( $userId, $newPassword, $oldPassword, $updateOn) {
// $this->db->select('Password');
// $this->db->from(LOGIN);
// $this->db->where('ID', $userId);
// $loginDetails = $this->db->get()->first_row();
// if ($loginDetails->Password == $oldPassword) {
// $sql = "UPDATE ".LOGIN." SET Password='$newPassword', UpdatedBy='$userId', UpdatedOn='$updateOn' WHERE ID='$userId'";
// if($this->db->query($sql) == '1'){
// $result['changePassStatus'] = true;
// $result['message'] = "Your Password Successfully changed !!";
// } else {
// $result['changePassStatus'] = false;
// $result['message'] = "Please try Again !!";
// }
// } else {
// $result['changePassStatus'] = false;
// $result['message'] = "Your Current Password miss match, Please try Again !!";
// }
// return $result;
// }
//
//
//public function login($mobile = null)
//{
// $this->db->select('MobileNumber');
//$this->db->where('MobileNumber', $mobile);
//$this->db->where('IsActive', 1);
//$//loginDetails = $this->db->get(LOGIN)->first_row();
//if($loginDetails){
//if($mobile == $loginDetails->MobileNumber){
//if($password == $loginDetails->Password){
//print_r($loginDetails);exit();
//$this->db->select('t1.MobileNumber, t1.ListCode, t1.ID, t2.BranchCode');
//$this->db->from(''.LOGIN.' as t1');
//$this->db->where('t1.MobileNumber', $mobile);
//$this->db->join(''.STAFF.' as t2', 't1.StaffID = t2.StaffID', 'LEFT');
//$responseDetails = $this->db->get()->first_row();
//$result['loginStatus'] = true;
//$result['details'] = $responseDetails;
//}
//else {
//$result['loginStatus'] = false;
/* $result['message'] = "Please Enter Valid Password !!";
}
}
else{
$result['loginStatus'] = false;
$result['message'] = "Please Enter Register Mobile Number !!";
}
}
else {
$result['loginStatus'] = false;
$result['message'] = "Something Went Wrong, Please try Again !!";
}
/*$this->db->join('areas a', 'a.id = e.id_area', 'inner');
$this->db->join('horario h', 'h.id = e.id_horario', 'inner');
$this->db->join('dia d', 'd.id = e.id_data', 'inner');
$this->db->join('tipo_evento t', 't.id = e.id_tipo', 'inner');
$this->db->join('campus c', 'c.id = e.id_unidade', 'inner');
if ( $id != null ){
$this->db->where('e.id', $id);
return $this->db->get('eventos')->first_row();
} else {
return $this->db->get('eventos')->result();
}*/
//return $result;
// }
}

View File

@ -0,0 +1,91 @@
'use strict';
/**
* controllers for ng-table
* Simple table with sorting and filtering on AngularJS
*/
app.controller('forgotCtrl', ["$scope", "$http", "API_POINTS", "$state", '$rootScope', '$cookies', 'md5','ipCookie', 'SweetAlert', function ($scope, $http, apiPoint, $state, $rootScope, $cookies, md5, ipCookie, SweetAlert) {
/**
* login details capture
* by : srk
*/
//
$scope.myModel = {
'userMobile': '',
};
$scope.show = false;
$scope.responseData = '';
$scope.forgotForm = {
submit: function (form) {
//alert("hi");
var firstError = null;
if (form.$invalid) {
var field = null, firstError = null;
for (field in form) {
if (field[0] != '$') {
if (firstError === null && !form[field].$valid) {
firstError = form[field].$name;
}
if (form[field].$pristine) {
form[field].$dirty = true;
}
}
}
angular.element('.ng-invalid[name=' + firstError + ']').focus();
} else {
$scope.spin = '';
var req = {
method: 'POST',
url: apiPoint.url + 'forgetlogin/',
headers: {
'Content-Type': 'application/json'
},
data: {
userMobile: $scope.myModel.userMobile,
// password: md5.createHash($scope.myModel.password || '')
}
};
$http(req).then(function (response) {
if (response.data.forgotstatus == true) {
// $scope.responseData = response.data.forgotstatus;
//alert(response.data.message);
swal("Success!",response.data.resPass, "success");
$state.go('login.signin');
} else {
//alert(response.data.message);
swal("Failed!", response.data.message, "error");
// $scope.show = true;
// $(".alert").delay(200).addClass("in").fadeOut(3500);
}
});
//
//
}
},
reset: function (form) {
$scope.myModel = angular.copy($scope.master);
form.$setPristine(true);
}
}
}]);
// forgetLogin -> Number(9876543210) -> (is he/she exist) yes---> genetate(md5(venba@123)) --> response(true check your mail, venba@123)
// no --> response(not exist)

View File

@ -1,6 +1,6 @@
'use strict';
/**
* controllers for ng-table
* controllers for ng-table//commentgit
* Simple table with sorting and filtering on AngularJS
*/

View File

@ -5,25 +5,32 @@
<img ng-src="{{app.layout.logo}}" alt="{{app.name}}"/>
</div>
<!-- start: FORGOT BOX -->
<div class="box-forgot">
<form class="form-forgot">
<div class="box-forget" ng-controller="forgotCtrl">
<!--<form name="myForm" class="form-forgot" novalidate class="form-inline" ng-submit="form.submit(Form)" method="post">-->
<form class="form-forrgot" ng-submit="forgotForm.submit(form)" name="form" id= "form" novalidate method="POST">
<fieldset>
<legend>
Forget Password?
</legend>
<p>
Enter your e-mail address below to reset your password.
<p style="color: sandybrown;">
Enter your Registered Mobile Number below to reset your password.
</p>
<div class="form-group">
<span class="input-icon">
<input type="email" class="form-control" name="email" placeholder="Email">
<i class="fa fa-envelope-o"></i> </span>
</div>
<div class="form-group" ng-class="{'has-error':form.mobilenumber.$dirty && form.mobilenumber.$invalid, 'has-success':form.mobilenumber.$valid}">
<span class="input-icon">
<input type="text" class="form-control" ng-model="myModel.userMobile" name="mobilenumber" placeholder="MobileNumber"
required>
<i class="fa fa-mobile"></i>
</span>
<span class="error text-small block" ng-if="form.mobilenumber.$dirty && form.mobilenumber.$error.required"> mobile number is required. </span>
</div>
<div class="form-actions">
<a class="btn btn-primary btn-o" ui-sref="login.signin">
<i class="fa fa-chevron-circle-left"></i> Log-In
</a>
<button type="submit" class="btn btn-primary pull-right">
<button type="submit" class="btn btn-primary pull-right">
Submit <i class="fa fa-arrow-circle-right"></i>
</button>
</div>