Advertisement
Guest User

Untitled

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