Advertisement
Guest User

Untitled

a guest
Nov 8th, 2017
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.82 KB | None | 0 0
  1. <form [formGroup]="form" class="form-horizontal" role="form" (submit)="onLoginSubmit()">
  2. <div class="row">
  3. <!--<div class="col-md-3"></div>-->
  4. <div class="col-md-12">
  5. <h2 class="page-header">Login Page</h2>
  6. </div>
  7. </div>
  8. <div class="row show-hide-message">
  9. <div [ngClass]="messageClass">
  10. {{message}}
  11. </div>
  12. </div>
  13. <div class="row">
  14. <div class="col-md-3 field-label-responsive">
  15. <label for="username">Username</label>
  16. </div>
  17. <div class="col-md-6" [ngClass]="{'has-errors':form.controls.username.errors && form.controls.username.dirty,
  18. 'has-success': form.controls.username.valid && form.controls.username.dirty }">
  19. <div class="form-group">
  20. <div class="input-group mb-2 mr-sm-2 mb-sm-0">
  21. <div class="input-group-addon" style="width: 2.6rem"><i class="fa fa-user"></i></div>
  22. <input type="text" name="username" class="form-control" formControlName="username" id="username"
  23. placeholder="Enter Username" required autofocus>
  24. </div>
  25.  
  26. <ul class="help-block" style="color: red">
  27. <li *ngIf="form.controls.username.errors?.required && form.controls.username.dirty ">
  28. This field is required
  29. </li>
  30. </ul>
  31. <!--<ul class="help-block" style="color: red">
  32.  
  33. <li
  34. *ngIf="(form.controls.username.errors?.minlength || form.controls.username.errors?.maxlength) && form.controls.username.dirty">
  35. Minimum Character:3, Maximum Character:15
  36. </li>
  37. <li *ngIf="form.controls.username.errors?.validateUsername && form.controls.username.dirty">
  38. Username must be atleast 3 characters but no more than 15
  39. </li>
  40. <li *ngIf="usernameMessage">{{usernameMessage}}</li>
  41. </ul>
  42. -->
  43. </div>
  44. </div>
  45. <div class="col-md-3">
  46. <div class="form-control-feedback">
  47. <span class="text-danger align-middle"></span>
  48. </div>
  49. </div>
  50. </div>
  51.  
  52. <div class="row">
  53. <div class="col-md-3 field-label-responsive">
  54. <label for="password">Password</label>
  55. </div>
  56. <div class="col-md-6" [ngClass]="{'has-errors': form.controls.password.errors && form.controls.password.dirty,
  57. 'has-success': form.controls.password.valid && form.controls.password.dirty }">
  58. <div class="form-group has-danger">
  59. <div class="input-group mb-2 mr-sm-2 mb-sm-0">
  60. <div class="input-group-addon" style="width: 2.6rem"><i class="fa fa-key"></i></div>
  61. <input type="password" name="password" class="form-control" formControlName="password" id="password"
  62. placeholder="Password" required>
  63. </div>
  64.  
  65. </div>
  66. </div>
  67. <div class="col-md-3">
  68. <div class="form-control-feedback">
  69. <span class="text-danger align-middle">
  70. <!--<i class="fa fa-close"> Example Error Message</i>-->
  71. </span>
  72. </div>
  73. </div>
  74. </div>
  75.  
  76. <div class="row">
  77. <div class="col-md-3"></div>
  78. <div class="col-md-6">
  79. <button [disabled]="!form.valid || processing" type="submit" class="btn btn-success"><i class="fa fa-user-plus"></i> Signin</button>
  80. </div>
  81. </div>
  82. </form>
  83.  
  84. import {Component, OnInit} from '@angular/core';
  85. import {FormGroup, FormBuilder, Validators, FormControl} from '@angular/forms';
  86. import { AuthService } from "../../services/auth.service";
  87. import { Router } from "@angular/router";
  88. import {AuthGuard} from "../../guards/auth.guard";
  89.  
  90. @Component({
  91. selector: 'app-login',
  92. templateUrl: './login.component.html',
  93. styleUrls: ['./login.component.css']
  94. })
  95. export class LoginComponent implements OnInit {
  96. message;
  97. messageClass;
  98. form;
  99. processing = false;
  100. previousUrl;
  101.  
  102. constructor(
  103. private formBuilder: FormBuilder,
  104. private authService: AuthService,
  105. private router: Router,
  106. private authGuard: AuthGuard
  107. ) {
  108. this.createForm();
  109. }
  110.  
  111. createForm() {
  112. this.form = this.formBuilder.group({
  113. username: ['', Validators.required],
  114. password: ['', Validators.required]
  115. });
  116. }
  117.  
  118. disableForm() {
  119. this.form.controls['username'].disable();
  120. this.form.controls['password'].disable();
  121. }
  122.  
  123. enableForm() {
  124. this.form.controls['username'].enable();
  125. this.form.controls['password'].enable();
  126. }
  127.  
  128. onLoginSubmit() {
  129. this.processing = true;
  130. this.disableForm();
  131. const user = {
  132. username: this.form.get('username').value,
  133. password: this.form.get('password').value
  134. }
  135. this.authService.login(user).subscribe(data => {
  136. if(!data.success){
  137. this.messageClass = 'alert alert-danger';
  138. this.message = data.message;
  139. this.processing = false;
  140. this.enableForm();
  141.  
  142. } else {
  143. this.messageClass = 'alert alert-success';
  144. this.message = data.message;
  145. this.authService.storeUserData(data.token, data.user);
  146. setTimeout(() => {
  147. if(this.previousUrl){
  148. this.router.navigate([this.previousUrl]);
  149. } else {
  150. this.router.navigate(['dashboard']);
  151. }
  152. },2000);
  153.  
  154. }
  155. });
  156. }
  157.  
  158. ngOnInit() {
  159. if(this.authGuard.redirectUrl){
  160. this.messageClass = 'alert alert-danger';
  161. this.message = 'You must be logged in to view that page.'
  162. this.previousUrl = this.authGuard.redirectUrl;
  163. this.authGuard.redirectUrl= undefined;
  164. }
  165. }
  166.  
  167. }
  168.  
  169. import {Injectable} from '@angular/core';
  170. import {Http, Headers, RequestOptions} from '@angular/http';
  171. import 'rxjs/add/operator/map';
  172. import { tokenNotExpired } from "angular2-jwt";
  173.  
  174. @Injectable()
  175. export class AuthService {
  176.  
  177. domain = "http://localhost:8080";
  178. authToken;
  179. user;
  180. options;
  181.  
  182. constructor(private http: Http) {
  183. }
  184.  
  185. createAuthenticationHeaders() {
  186. this.loadToken();
  187. this.options = new RequestOptions({
  188. headers: new Headers({
  189. 'Content-Type': 'application/json',
  190. 'authorization': this.authToken
  191. })
  192. })
  193.  
  194. }
  195.  
  196. loadToken() {
  197. const token = localStorage.getItem('token');
  198. this.authToken = token;
  199. }
  200.  
  201. registerUser(user) {
  202. return this.http.post(this.domain + '/authentication/register', user).map(res => res.json());
  203. }
  204.  
  205. checkUsername(username) {
  206. return this.http.get(this.domain + '/authentication/checkUsername/' + username).map(res => res.json());
  207. }
  208.  
  209. checkEmail(email) {
  210. return this.http.get(this.domain + '/authentication/checkEmail/' + email).map(res => res.json());
  211. }
  212.  
  213. login(user) {
  214. return this.http.post(this.domain + '/authentication/login', user).map(res => res.json());
  215. }
  216.  
  217. logout() {
  218. this.authToken = null;
  219. this.user = null;
  220. localStorage.clear();
  221. }
  222.  
  223. storeUserData(token, user) {
  224. localStorage.setItem('token', token);
  225. localStorage.setItem('user', JSON.stringify(user));
  226. this.authToken = token;
  227. this.user = user;
  228. }
  229.  
  230. getProfile() {
  231. this.createAuthenticationHeaders();
  232. return this.http.get(this.domain + '/authentication/profile', this.options).map(res => res.json());
  233. }
  234.  
  235.  
  236. getPublicProfile(username) {
  237. this.createAuthenticationHeaders();
  238. return this.http.get(this.domain + '/authentication/publicProfile/' + username, this.options).map(res => res.json());
  239. }
  240.  
  241. loggedIn() {
  242. return tokenNotExpired();
  243. }
  244. }
  245.  
  246. <button id="btn1" onclick="document.getElementById('id01').style.display='block'" style="width:auto; display: none ">Login</button>
  247.  
  248. <form [formGroup]="form" class="modal-content animate" role="form" (submit)="onLoginSubmit()" *ngIf="!authAdminService.loggedIn()">
  249. <div class="imgcontainer">
  250. <img src="../../assets/livegujarati_logo.png" alt="Avatar" class="avatar">
  251. </div>
  252. <div class="row show-hide-message" style="margin: 0">
  253. <div [ngClass]="messageClass">
  254. {{message}}
  255. </div>
  256. </div>
  257.  
  258. <div class="container">
  259. <label><b>Username</b></label>
  260. <div [ngClass]="{'has-errors':form.controls.username.errors && form.controls.username.dirty,
  261. 'has-success': form.controls.username.valid && form.controls.username.dirty }">
  262. <input type="text" name="username" class="form-control" formControlName="username" id="username"
  263. placeholder="Enter Username" required autofocus>
  264. <ul class="help-block" style="color: red">
  265. <li *ngIf="form.controls.username.errors?.required && form.controls.username.dirty ">
  266. This field is required
  267. </li>
  268. </ul>
  269. </div>
  270.  
  271. <label><b>Password</b></label>
  272. <div [ngClass]="{'has-errors': form.controls.password.errors && form.controls.password.dirty,
  273. 'has-success': form.controls.password.valid && form.controls.password.dirty }">
  274. <input type="password" name="password" class="form-control" formControlName="password" id="password"
  275. placeholder="Password" required>
  276. </div>
  277.  
  278. <button [disabled]="!form.valid || processing" type="submit" class="btn btn-success"><i class="fa fa-user-plus"></i> Signin</button>
  279. <input type="checkbox" checked="checked"> Remember me
  280. </div>
  281.  
  282. <div class="container" style="background-color:#f1f1f1">
  283. <span class="psw">Forgot <a href="#">password?</a></span>
  284. </div>
  285. </form>
  286.  
  287. import {Component, OnInit} from '@angular/core';
  288. import {FormGroup, FormBuilder, Validators, FormControl} from '@angular/forms';
  289. import { Router } from "@angular/router";
  290. import {AdminAuthGuard} from "../guards/admin.auth.guard";
  291. import {AuthadminService} from "../adminservices/authadmin.service";
  292.  
  293. @Component({
  294. selector: 'app-admin-login',
  295. templateUrl: './admin-login.component.html',
  296. styleUrls: ['./admin-login.component.css']
  297. })
  298. export class AdminLoginComponent implements OnInit {
  299. message;
  300. messageClass;
  301. form;
  302. processing = false;
  303. previousUrl;
  304.  
  305. constructor(
  306. private formBuilder: FormBuilder,
  307. private authAdminService: AuthadminService,
  308. private router: Router,
  309. private adminAuthGuard: AdminAuthGuard
  310. ) {
  311. this.createForm();
  312. }
  313.  
  314. createForm() {
  315. this.form = this.formBuilder.group({
  316. username: ['', Validators.required],
  317. password: ['', Validators.required]
  318. });
  319. }
  320.  
  321. disableForm() {
  322. this.form.controls['username'].disable();
  323. this.form.controls['password'].disable();
  324. }
  325.  
  326. enableForm() {
  327. this.form.controls['username'].enable();
  328. this.form.controls['password'].enable();
  329. }
  330.  
  331. onLoginSubmit() {
  332. this.processing = true;
  333. this.disableForm();
  334. const user = {
  335. username: this.form.get('username').value,
  336. password: this.form.get('password').value
  337. }
  338. this.authAdminService.admindashboard(user).subscribe(data => {
  339. if(!data.success){
  340. this.messageClass = 'alert alert-danger';
  341. this.message = data.message;
  342. this.processing = false;
  343. this.enableForm();
  344.  
  345. } else {
  346. this.messageClass = 'alert alert-success';
  347. this.message = data.message;
  348. this.authAdminService.storeUserData(data.token, data.user);
  349. setTimeout(() => {
  350. if(this.previousUrl){
  351. this.router.navigate(['admin/admin-login']);
  352.  
  353. } else {
  354.  
  355. this.router.navigate(['admin/admin-dashboard']);
  356.  
  357. }
  358. },2000);
  359.  
  360. }
  361. });
  362. }
  363.  
  364. ngOnInit() {
  365. if(this.adminAuthGuard.redirectUrl){
  366. this.messageClass = 'alert alert-danger';
  367. this.message = 'You must be logged in to view that page.'
  368. this.previousUrl = this.adminAuthGuard.redirectUrl;
  369. this.adminAuthGuard.redirectUrl= undefined;
  370. }
  371. }
  372.  
  373. }
  374.  
  375. **authadmin.service.ts**
  376.  
  377. import { Injectable } from '@angular/core';
  378. import {Http, Headers, RequestOptions} from '@angular/http';
  379. import 'rxjs/add/operator/map';
  380. import { tokenNotExpired } from "angular2-jwt";
  381.  
  382. @Injectable()
  383. export class AuthadminService {
  384.  
  385. domain = "http://localhost:8080";
  386. authAdminToken;
  387. user;
  388. options;
  389.  
  390. constructor(private http: Http) {
  391. }
  392.  
  393. createAuthenticationHeaders() {
  394. this.loadToken();
  395. this.options = new RequestOptions({
  396. headers: new Headers({
  397. 'Content-Type': 'application/json',
  398. 'authorization': this.authAdminToken
  399. })
  400. })
  401.  
  402. }
  403.  
  404. loadToken() {
  405. const token = localStorage.getItem('token');
  406. this.authAdminToken = token;
  407. }
  408.  
  409. admindashboard(user)
  410. {
  411. return this.http.post(this.domain + '/authentication/admin', user).map(res => res.json());
  412. }
  413. logout() {
  414. this.authAdminToken = null;
  415. this.user = null;
  416. localStorage.clear();
  417. }
  418.  
  419. storeUserData(token, user) {
  420. localStorage.setItem('token', token);
  421. localStorage.setItem('user', JSON.stringify(user));
  422. this.authAdminToken = token;
  423. this.user = user;
  424. }
  425.  
  426. getAdminProfile() {
  427. this.createAuthenticationHeaders();
  428. return this.http.get(this.domain + '/authentication/adminProfile', this.options).map(res => res.json());
  429. }
  430.  
  431.  
  432. loggedIn() {
  433. return tokenNotExpired();
  434. }
  435. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement