auth-service.service.ts 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. import { Modal } from 'ngx-modialog/plugins/bootstrap';
  2. import { HttpClient, HttpRequest } from '@angular/common/http';
  3. import { Injectable } from '@angular/core';
  4. import * as JWT from 'jwt-decode';
  5. import { tokenNotExpired, JwtHelper } from 'angular2-jwt';
  6. import { Observable, Subject } from 'rxjs';
  7. import { ActivatedRoute } from '@angular/router';
  8. import { JwtHelperService } from '@auth0/angular-jwt';
  9. import { Location } from '@angular/common';
  10. @Injectable({
  11. providedIn: 'root'
  12. })
  13. export class AuthServiceService {
  14. constructor(private http: HttpClient,
  15. private location: Location,
  16. private modal: Modal,
  17. private route: ActivatedRoute) {
  18. }
  19. jwtHelper: JwtHelper = new JwtHelper();
  20. //user permision name
  21. addButton: string = 'add_user';
  22. editButton: string = 'edit_user';
  23. deleteButton: string = 'delete_uder';
  24. showAddBtn: boolean = false;
  25. showDeleteBtn:boolean = false;
  26. showEditBtn: boolean = false;
  27. showReportBtn: boolean = false;
  28. showPrintBtn: boolean = false;
  29. showPermissionsBtn: boolean = false;
  30. showHeaderLogin: boolean = false;
  31. showHeaderDashBoard: boolean = false;
  32. showMoreLinks:boolean = false;
  33. showDashboardHeader: boolean = false;
  34. internalHeader: boolean = false;
  35. end = '1990-01-01';
  36. arabicTemplate: boolean;
  37. arabicLanguage: boolean;
  38. englishLanguage:boolean;
  39. showArabicIcon:boolean;
  40. showEnglishIcon:boolean;
  41. // pathApi: string = 'http://10.93.50.2/kfmc_back_end/index.php/api';
  42. // pathImg: string = "http://10.93.50.2/kfmc_back_end/public/";
  43. pathApi: string = 'http://kfmc.info/back_end/api';
  44. pathImg: string = "http://kfmc.info/back_end/public/";
  45. myInnerHeight = window.innerHeight;
  46. imgSrc: string = '../../assets/image/avatar.png'; //page profile default
  47. iconImg: string = '../../assets/image/Group 92.png';
  48. showSearchHeader: boolean = true;
  49. headereClassActive:boolean = false;
  50. homeActivate:boolean = true;
  51. cachedRequests: Array<HttpRequest<any>> = [];
  52. notificationLogin: boolean = true;
  53. checkExternalFooter: boolean = false;
  54. parentsPage = [];
  55. footerData=[];
  56. dataLoginUser: any;
  57. //login function
  58. login(dataForm) {
  59. console.log(dataForm);
  60. return this.http.post(this.pathApi + '/login', dataForm);
  61. }
  62. //signup Function
  63. signUp(dataSignUp){
  64. console.log(dataSignUp);
  65. return this.http.post(this.pathApi + '/register', dataSignUp);
  66. }
  67. //return data user function
  68. setDataUser(user) {
  69. this.dataLoginUser = user.user;
  70. localStorage.setItem('userObject', JSON.stringify(this.dataLoginUser));
  71. console.log('data loooogin' , this.dataLoginUser);
  72. }
  73. //return user data
  74. returnUserData() {
  75. this.dataLoginUser = JSON.parse(localStorage.getItem('userObject'));
  76. return this.dataLoginUser;
  77. }
  78. //Authentication
  79. public getToken(): string {
  80. return localStorage.getItem('token');
  81. }
  82. public isAuthenticated(): boolean {
  83. // get the token
  84. const token = this.getToken();
  85. // console.log('toooooken',this.jwtHelper.isTokenExpired(token));
  86. // return a boolean reflecting
  87. // whether or not the token is expired
  88. if(token){
  89. return this.jwtHelper.isTokenExpired(token);
  90. }
  91. return true;
  92. }
  93. public collectFailedRequest(request): void {
  94. this.cachedRequests.push(request);
  95. }
  96. //previous back locarion
  97. perviousLocation() {
  98. this.location.back();
  99. }
  100. //out of page
  101. backFromEdit() {
  102. const dialogRef = this.modal.alert()
  103. .size('sm')
  104. .showClose(true)
  105. .title('تأكيد الخروج')
  106. .body(`
  107. <h4>الخروج من هذه الصفحه ؟ </h4>
  108. `)
  109. .open();
  110. dialogRef.result
  111. .then( result =>
  112. this.perviousLocation()
  113. );
  114. }
  115. setLocalLang(){
  116. if(! localStorage.getItem('lang')){
  117. localStorage.setItem('lang', "ar");
  118. this.arabicTemplate = true;
  119. this.arabicLanguage = true;
  120. this.englishLanguage = false;
  121. this.showArabicIcon= false;
  122. this.showEnglishIcon=true;
  123. }else{
  124. if(localStorage.getItem('lang')=='ar'){
  125. this.arabicTemplate = true;
  126. this.arabicLanguage = true;
  127. this.englishLanguage = false;
  128. this.showArabicIcon= false;
  129. this.showEnglishIcon=true;
  130. }else if(localStorage.getItem('lang')=='en'){
  131. this.arabicTemplate = false;
  132. this.arabicLanguage = false;
  133. this.englishLanguage = true;
  134. this.showArabicIcon = true;
  135. this.showEnglishIcon = false;
  136. }
  137. }
  138. }
  139. //language content
  140. onLanguageContent(typeLang:string) {
  141. localStorage.setItem('lang', typeLang);
  142. this.setLocalLang();
  143. }
  144. //get footer list
  145. onGetFooterData(typePageFooter:string) {
  146. if(typePageFooter == 'external') {
  147. return this.http.get(this.pathApi + '/get_footers_links/1');
  148. } else if(typePageFooter == 'internal' || 'dashboard') {
  149. return this.http.get(this.pathApi + '/get_footers_links');
  150. }
  151. }
  152. //prevent ngative value in input number
  153. onKeydown(e) {
  154. if(!((e.keyCode > 95 && e.keyCode < 106)
  155. || (e.keyCode > 47 && e.keyCode < 58)
  156. || e.keyCode == 8)) {
  157. return false;
  158. }
  159. }
  160. //function return higri date
  161. //function to convert date to higri date
  162. writeHijri(date, lang, type) {
  163. lang = lang || 'en';
  164. var options = {
  165. year: 'numeric', month: 'long', day: 'numeric'
  166. };
  167. var days = ['الأحد', 'الأثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعه', 'السبت'];
  168. if(type == 'system') {
  169. var date = date;
  170. } else if(type == 'header') {
  171. date = new Date();
  172. var dayName = days[date.getDay()];
  173. }
  174. //var date = date || new Date();
  175. if(dayName) {
  176. return dayName + ' ' + date.toLocaleString(lang + '-u-ca-islamic', options);
  177. } else {
  178. return date.toLocaleString(lang + '-u-ca-islamic', options);
  179. }
  180. }
  181. //convert arabic number to english number
  182. parseArabic(str) {
  183. return Number( str.replace(/[٠١٢٣٤٥٦٧٨٩]/g, function(d) {
  184. return d.charCodeAt(0) - 1632; // Convert Arabic numbers
  185. }).replace(/[۰۱۲۳۴۵۶۷۸۹]/g, function(d) {
  186. return d.charCodeAt(0) - 1776; // Convert Persian numbers
  187. }) );
  188. }
  189. }