_Layout.cshtml 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  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. @RenderSection("Scripts", required: false)
  53. <div class="d-flex" id="wrapper">
  54. <!-- Sidebar -->
  55. <div class="bg-light border-right" id="sidebar-wrapper">
  56. <div class="sidebar-heading">Strohrmann ERP</div>
  57. <div class="list-group list-group-flush">
  58. <h5 class="list-group-item">Dashboard</h5>
  59. <a asp-controller="Home" asp-action="Index" class="list-group-item list-group-item-action bg-light">
  60. <span class="fas fa-fw fa-tachometer-alt"></span>
  61. <span>Übersicht</span>
  62. </a>
  63. @if (isAdministrator)
  64. {
  65. <h5 class="list-group-item">Administration</h5>
  66. <a asp-controller="Rights" asp-action="Index" class="list-group-item list-group-item-action bg-light">
  67. <span class="fas fa-fw fa-user-friends w-10"></span>
  68. <span>Benutzerverwaltung</span>
  69. </a>
  70. }
  71. @if (isAdministrator || AuthorizationService.UserHasBasedataPolicy(User.Identity))
  72. {
  73. <h5 class="list-group-item">Stammdaten</h5>
  74. @if (isAdministrator || AuthorizationService.UserHasCategoryPolicy(User.Identity, "Customer"))
  75. {
  76. <a asp-controller="Customer" asp-action="Index" class="list-group-item list-group-item-action bg-light">
  77. <span class="fas fa-fw fa-user-tag"></span>
  78. <span>Kunden</span>
  79. </a>
  80. }
  81. @if (isAdministrator || AuthorizationService.UserHasCategoryPolicy(User.Identity, "Employee"))
  82. {
  83. <a asp-controller="Employee" asp-action="Index" class="list-group-item list-group-item-action bg-light">
  84. <span class="fas fa-fw fa-people-carry"></span>
  85. <span>Mitarbeiter</span>
  86. </a>
  87. }
  88. @if (isAdministrator || AuthorizationService.UserHasCategoryPolicy(User.Identity, "Material"))
  89. {
  90. <a asp-controller="Material" asp-action="Index" class="list-group-item list-group-item-action bg-light">
  91. <span class="fas fa-fw fa-box"></span>
  92. <span>Material</span>
  93. </a>
  94. }
  95. @if (isAdministrator || AuthorizationService.UserHasCategoryPolicy(User.Identity, "Supplier"))
  96. {
  97. <a asp-controller="Supplier" asp-action="Index" class="list-group-item list-group-item-action bg-light">
  98. <span class="fas fa-fw fa-truck"></span>
  99. <span>Lieferant</span>
  100. </a>
  101. }
  102. }
  103. @if (isAdministrator || AuthorizationService.UserHasCategoryPolicy(User.Identity, "Craft"))
  104. {
  105. <h5 class="list-group-item">Operativ</h5>
  106. <a asp-controller="Craft" asp-action="Index" class="list-group-item list-group-item-action bg-light">
  107. <span class="fas fa-fw fa-warehouse"></span>
  108. <span>Gewerke</span>
  109. </a>
  110. }
  111. </div>
  112. </div>
  113. <!-- /#sidebar-wrapper -->
  114. <!-- Page Content -->
  115. <div id="page-content-wrapper">
  116. <div id="contentHeadContainer" class="container-fluid pr-0">
  117. <div class="row d-flex top-menu">
  118. <div class="mr-auto p-0">
  119. <nav class="navbar navbar-expand-lg navbar-light">
  120. <button class="btn btn-primary" id="menu-toggle" title="Menü ein- / ausklappen">
  121. <span class="fas fa-th-list"></span>
  122. </button>
  123. </nav>
  124. </div>
  125. <div class="d-none d-lg-inline p-2">
  126. <img class="align-middle mt-1" src="~/img/strohrmann_logo.png" title="Strohrmann" height="30" />
  127. </div>
  128. <div class="d-flex user-logo-container">
  129. <img class="align-self-center mr-1 ml-3" src="~/img/user_logo.png" title="@User.Identity.Name" height="40" />
  130. <span class="align-self-center mr-4 ml-1 text-white">
  131. <small>@User.Identity.Name</small>
  132. </span>
  133. <a class="btn btn-info btn-sm align-self-center mr-4" role="button" href="@Url.Action("Logout", "Account")">
  134. Ausloggen
  135. </a>
  136. </div>
  137. </div>
  138. </div>
  139. <div id="contentBodyContainer" class="container-fluid overflow-auto">
  140. @RenderBody()
  141. </div>
  142. </div>
  143. <!-- /#page-content-wrapper -->
  144. </div>
  145. <!-- /#wrapper -->
  146. <!-- Menu Toggle Script -->
  147. <script type="text/javascript">
  148. $("#menu-toggle").click(function(e) {
  149. e.preventDefault();
  150. $("#wrapper").toggleClass("toggled");
  151. });
  152. $(window).resize(function () {
  153. $("#contentBodyContainer").height($(window).height() - $("#contentHeadContainer").height());
  154. });
  155. $(document).ready(function () {
  156. $("#contentBodyContainer").height($(window).height() - $("#contentHeadContainer").height());
  157. });
  158. </script>
  159. </body>
  160. </html>