_Layout.cshtml 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  1. @using Microsoft.AspNetCore.Authorization
  2. @inject GreenTree.Strohrmann.ERP.Services.Authorization.AdministrationOptions AdministrationOptions
  3. @inject GreenTree.Strohrmann.ERP.Services.Authorization.IAuthorizationService AuthorizationService
  4. @{
  5. var isAdministrator = User.Claims
  6. .Any(c => c.Type == System.Security.Claims.ClaimTypes.NameIdentifier &&
  7. c.Value == AdministrationOptions.Administrator);
  8. }
  9. <!DOCTYPE html>
  10. <html lang="de">
  11. <head>
  12. <meta charset="utf-8">
  13. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  14. <meta name="description" content="">
  15. <meta name="author" content="">
  16. <title>@ViewData["Title"] - Strohrmann ERP</title>
  17. <!-- Bootstrap core CSS -->
  18. <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
  19. <!-- Bootstrap plugins CSS -->
  20. <link rel="stylesheet" href="~/lib/bootstrap-select/css/bootstrap-select.css" />
  21. <!-- FontAwesome core CSS -->
  22. <link rel="stylesheet" href="~/lib/font-awesome/css/all.min.css" />
  23. <!-- FontAwesome CSS -->
  24. <link rel="stylesheet" href="~/lib/font-awesome/css/fontawesome.min.css" />
  25. <!-- jQueryUI CSS -->
  26. <link rel="stylesheet" href="~/lib/jqueryui/jquery-ui.min.css" />
  27. <!-- DataTables CSS -->
  28. <link rel="stylesheet" href="~/lib/datatables/css/dataTables.bootstrap4.min.css" />
  29. <!-- Custom page CSS -->
  30. <link rel="stylesheet" href="~/css/site.css" />
  31. <!-- Custom styles for this template -->
  32. <link rel="stylesheet" href="~/css/simple-sidebar.css" />
  33. </head>
  34. <body>
  35. <!-- jQuery core JavaScript -->
  36. <script src="~/lib/jquery/dist/jquery.min.js"></script>
  37. <!-- jQuery UI JavaScript -->
  38. <script src="~/lib/jqueryui/jquery-ui.min.js"></script>
  39. <!-- Popper JavaScript -->
  40. <script src="~/lib/popper.js/umd/popper.min.js"></script>
  41. <!-- Bootstrap core JavaScript -->
  42. <script src="~/lib/bootstrap/dist/js/bootstrap.bundle.min.js"></script>
  43. <!-- Bootstrap plugins JavaScript -->
  44. <script src="~/lib/bootstrap-select/js/bootstrap-select.js"></script>
  45. <script src="~/lib/bootstrap-select/js/i18n/defaults-de_DE.min.js"></script>
  46. <!-- DataTables JavaScript -->
  47. <script src="~/lib/datatables/js/jquery.dataTables.min.js"></script>
  48. <script src="~/lib/datatables/js/dataTables.bootstrap4.min.js"></script>
  49. <script src="~/lib/datatables-responsive/dataTables.responsive.js"></script>
  50. <!-- application core JavaScript -->
  51. <script src="~/js/site.js" asp-append-version="true"></script>
  52. <!-- application extension JavaScript -->
  53. <script src="~/js/extension.js" asp-append-version="true"></script>
  54. @RenderSection("Scripts", required: false)
  55. <div class="d-flex" id="wrapper">
  56. <!-- Sidebar -->
  57. <div class="bg-light border-right" id="sidebar-wrapper">
  58. <div class="sidebar-heading">Strohrmann ERP</div>
  59. <div class="list-group list-group-flush">
  60. <h5 class="list-group-item">Dashboard</h5>
  61. <a asp-controller="Home" asp-action="Index" class="list-group-item list-group-item-action bg-light">
  62. <span class="fas fa-fw fa-tachometer-alt"></span>
  63. <span>Übersicht</span>
  64. </a>
  65. @if (isAdministrator)
  66. {
  67. <h5 class="list-group-item">Administration</h5>
  68. <a asp-controller="Rights" asp-action="Index" class="list-group-item list-group-item-action bg-light">
  69. <span class="fas fa-fw fa-user-friends w-10"></span>
  70. <span>Benutzerverwaltung</span>
  71. </a>
  72. }
  73. @if (isAdministrator || AuthorizationService.UserHasBasedataPolicy(User.Identity))
  74. {
  75. <h5 class="list-group-item">Stammdaten</h5>
  76. @if (isAdministrator || AuthorizationService.UserHasCategoryPolicy(User.Identity, "Customer"))
  77. {
  78. <a asp-controller="Customer" asp-action="Index" class="list-group-item list-group-item-action bg-light">
  79. <span class="fas fa-fw fa-user-tag"></span>
  80. <span>Kunden</span>
  81. </a>
  82. }
  83. @if (isAdministrator || AuthorizationService.UserHasCategoryPolicy(User.Identity, "Employee"))
  84. {
  85. <a asp-controller="Employee" asp-action="Index" class="list-group-item list-group-item-action bg-light">
  86. <span class="fas fa-fw fa-people-carry"></span>
  87. <span>Mitarbeiter</span>
  88. </a>
  89. }
  90. @if (isAdministrator || AuthorizationService.UserHasCategoryPolicy(User.Identity, "Material"))
  91. {
  92. <a asp-controller="Material" asp-action="Index" class="list-group-item list-group-item-action bg-light">
  93. <span class="fas fa-fw fa-box"></span>
  94. <span>Material</span>
  95. </a>
  96. }
  97. @if (isAdministrator || AuthorizationService.UserHasCategoryPolicy(User.Identity, "Supplier"))
  98. {
  99. <a asp-controller="Supplier" asp-action="Index" class="list-group-item list-group-item-action bg-light">
  100. <span class="fas fa-fw fa-truck"></span>
  101. <span>Lieferant</span>
  102. </a>
  103. }
  104. }
  105. @if (isAdministrator || AuthorizationService.UserHasCategoryPolicy(User.Identity, "Craft"))
  106. {
  107. <h5 class="list-group-item">Operativ</h5>
  108. <a asp-controller="Craft" asp-action="Index" class="list-group-item list-group-item-action bg-light">
  109. <span class="fas fa-fw fa-warehouse"></span>
  110. <span>Gewerke</span>
  111. </a>
  112. }
  113. </div>
  114. </div>
  115. <!-- /#sidebar-wrapper -->
  116. <!-- Page Content -->
  117. <div id="page-content-wrapper">
  118. <div id="contentHeadContainer" class="container-fluid pr-0">
  119. <div class="row d-flex top-menu">
  120. <div class="mr-auto p-0">
  121. <nav class="navbar navbar-expand-lg navbar-light">
  122. <button class="btn btn-primary" id="menu-toggle" title="Menü ein- / ausklappen">
  123. <span class="fas fa-th-list"></span>
  124. </button>
  125. </nav>
  126. </div>
  127. <div class="d-none d-lg-inline p-2">
  128. <img class="align-middle mt-1" src="~/img/strohrmann_logo.png" title="Strohrmann" height="30" />
  129. </div>
  130. <div class="d-flex user-logo-container">
  131. <img class="align-self-center mr-1 ml-3" src="~/img/user_logo.png" title="@User.Identity.Name" height="40" />
  132. <span class="align-self-center mr-4 ml-1 text-white">
  133. <small>@User.Identity.Name</small>
  134. </span>
  135. <a class="btn btn-info btn-sm align-self-center mr-4" role="button" href="@Url.Action("Logout", "Account")">
  136. Ausloggen
  137. </a>
  138. </div>
  139. </div>
  140. </div>
  141. <div id="contentBodyContainer" class="container-fluid overflow-auto">
  142. @RenderBody()
  143. </div>
  144. </div>
  145. <!-- /#page-content-wrapper -->
  146. </div>
  147. <!-- /#wrapper -->
  148. <!-- Menu Toggle Script -->
  149. <script type="text/javascript">
  150. $("#menu-toggle").click(function(e) {
  151. e.preventDefault();
  152. $("#wrapper").toggleClass("toggled");
  153. });
  154. $(window).resize(function () {
  155. $("#contentBodyContainer").height($(window).height() - $("#contentHeadContainer").height());
  156. });
  157. $(document).ready(function () {
  158. $("#contentBodyContainer").height($(window).height() - $("#contentHeadContainer").height());
  159. });
  160. </script>
  161. </body>
  162. </html>