Guest User

Untitled

a guest
Dec 1st, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.71 KB | None | 0 0
  1. var myApp = angular.module('myApp', ['ngResource', 'ngRoute']);
  2.  
  3. myApp.config(function ($routeProvider) {
  4. $routeProvider
  5. .when('/', {
  6. templateUrl: 'partials/main.html',
  7. access: {restricted: true}
  8. })
  9. .when('/api/meetups', {
  10. templateUrl: 'partials/main.html',
  11. access: {restricted: true}
  12. })
  13. .when('/login', {
  14. templateUrl: 'partials/login.html',
  15. controller: 'loginController',
  16. access: {restricted: false}
  17. })
  18. .when('/prive', {
  19. templateUrl: 'partials/prive.html',
  20. controller: 'userController',
  21. access: {restricted: true}
  22. })
  23. .when('/logout', {
  24. controller: 'logoutController',
  25. access: {restricted: true}
  26. })
  27. .when('/register', {
  28. templateUrl: 'partials/register.html',
  29. controller: 'registerController',
  30. access: {restricted: false}
  31. })
  32. .when('/one', {
  33. template: '<h1>This is page one!</h1>',
  34. access: {restricted: true}
  35. })
  36. .when('/two', {
  37. template: '<h1>This is page two!</h1>',
  38. access: {restricted: false}
  39. })
  40. .otherwise({
  41. redirectTo: '/'
  42. });
  43. });
  44.  
  45. myApp.run(function ($rootScope, $location, $route, AuthService) {
  46. $rootScope.$on('$routeChangeStart',
  47. function (event, next, current) {
  48. AuthService.getUserStatus()
  49. .then(function(){
  50. if (next.access.restricted && !AuthService.isLoggedIn()){
  51. $location.path('/login');
  52. $route.reload();
  53. }
  54. });
  55. });
  56. });
  57.  
  58.  
  59.  
  60.  
  61.  
  62. angular.module('myApp').factory('AuthService',
  63. ['$q', '$timeout', '$http',
  64. function ($q, $timeout, $http, $cookies) {
  65.  
  66. // create user variable
  67. var user = null;
  68.  
  69. // we must create authMemberDefer var so we can get promise anywhere in app
  70. var authenticatedMemberDefer = $q.defer();
  71.  
  72. // return available functions for use in the controllers
  73. return ({
  74. isLoggedIn: isLoggedIn,
  75. getUserStatus: getUserStatus,
  76. login: login,
  77. logout: logout,
  78. register: register,
  79. getAuthMember: getAuthMember,
  80. setAuthMember: setAuthMember
  81. });
  82.  
  83. function isLoggedIn() {
  84. if(user) {
  85. return true;
  86. } else {
  87. return false;
  88. }
  89. }
  90. //this is function that we will call each time when we need auth member data
  91. function getAuthMember() {
  92. return authenticatedMemberDefer.promise;
  93. }
  94. //this is setter function to set member from coockie that we create on login
  95. function setAuthMember(member) {
  96. authenticatedMemberDefer.resolve(member);
  97. }
  98.  
  99. function getUserStatus() {
  100. return $http.get('/user/status')
  101. // handle success
  102. .success(function (data) {
  103. if(data.status){
  104. user = true;
  105. } else {
  106. user = false;
  107. }
  108. })
  109. // handle error
  110. .error(function (data) {
  111. user = false;
  112. });
  113. }
  114.  
  115. function login(username, password) {
  116.  
  117. // create a new instance of deferred
  118. var deferred = $q.defer();
  119.  
  120. // send a post request to the server
  121. $http.post('/user/login',
  122. {username: username, password: password})
  123. // handle success
  124. .success(function (data, status) {
  125. if(status === 200 && data.status){
  126. user = true;
  127. deferred.resolve();
  128.  
  129. //**
  130. $cookies.putObject('loginSession', data);
  131. // here create coockie for your logged user that you get from this response, im not sure if its just "data" or data.somethingElse, check you response you should have user object there
  132.  
  133.  
  134. } else {
  135. user = false;
  136. deferred.reject();
  137. }
  138. })
  139. // handle error
  140. .error(function (data) {
  141. user = false;
  142. deferred.reject();
  143. });
  144.  
  145. // return promise object
  146. return deferred.promise;
  147.  
  148. }
  149.  
  150. function logout() {
  151.  
  152. // create a new instance of deferred
  153. var deferred = $q.defer();
  154.  
  155. // send a get request to the server
  156. $http.get('/user/logout')
  157. // handle success
  158. .success(function (data) {
  159. user = false;
  160. deferred.resolve();
  161. //on log out remove coockie
  162. $cookies.remove('loginSession');
  163.  
  164. })
  165. // handle error
  166. .error(function (data) {
  167. user = false;
  168. deferred.reject();
  169. });
  170.  
  171. // return promise object
  172. return deferred.promise;
  173.  
  174. }
  175.  
  176. function register(username, password) {
  177.  
  178. // create a new instance of deferred
  179. var deferred = $q.defer();
  180.  
  181. // send a post request to the server
  182. $http.post('/user/register',
  183. {username: username, password: password})
  184. // handle success
  185. .success(function (data, status) {
  186. if(status === 200 && data.status){
  187. deferred.resolve();
  188. } else {
  189. deferred.reject();
  190. }
  191. })
  192. // handle error
  193. .error(function (data) {
  194. deferred.reject();
  195. });
  196.  
  197. // return promise object
  198. return deferred.promise;
  199.  
  200. }
  201.  
  202. }]);
  203.  
  204.  
  205. myApp.controller('meetupsController', ['$scope', '$resource', 'AuthService', function ($scope, $resource, AuthService) {
  206. var Meetup = $resource('/api/meetups');
  207. $scope.meetups = []
  208.  
  209. Meetup.query(function (results) {
  210. $scope.meetups = results;
  211. });
  212.  
  213. /AuthService.getAuthMember().then(function(member){
  214. console.log(member);
  215. //here your member should be and you can apply any logic or use that data where u want
  216. $scope.username1=member.username;
  217. });
  218.  
  219. $scope.createMeetup = function () {
  220. var meetup = new Meetup();
  221. meetup.name = $scope.meetupName;
  222. meetup.text = $scope.username;
  223. meetup.$save(function (result) {
  224. $scope.meetups.push(result);
  225. $scope.meetupName = '';
  226. $scope.username = '';
  227. });
  228. }
  229.  
  230.  
  231.  
  232.  
  233.  
  234. }]);
  235. myApp.controller('userController', ['$scope', '$resource', function ($scope, $resource) {
  236. /* var Meetup = $resource('/api/user');
  237. $scope.users = []
  238.  
  239. Meetup.query(function (results) {
  240. $scope.users = results;
  241. });
  242. */
  243.  
  244. var Meetup = $resource('/api/user', {},{
  245. query: {method: 'get', isArray: true}
  246. });
  247. $scope.users = []
  248. $scope.text='mikyas';
  249. Meetup.query({text: $scope.text}).$promise.then(function (results) {
  250. $scope.users = results;
  251. }, function(error) {
  252. // console.log(error);
  253. $scope.meetups = [];
  254. });
  255.  
  256. }]);
  257.  
  258. myApp.run(function($rootScope, $location, $route, AuthService, $cookies) {
  259. $rootScope.$on('$routeChangeStart',
  260. function(event, next, current) {
  261. if ($cookies.get('loginSession')) {
  262. var session = JSON.parse($cookies.get('loginSession'));
  263. AuthService.setAuthMember(session);
  264. } else {
  265. $location.path('/login');
  266. }
  267. });
  268. });
  269.  
  270. var myApp = angular.module('myApp', ['ngResource', 'ngRoute', 'ngCookies']);
Add Comment
Please, Sign In to add comment