275 lines
20 KiB
Plaintext

@using System.Globalization
@using System.Net.Mime
@using gehGassi.Common.Data
@using gehGassi.Domain.Users
@using gehGassi.Permissions
@using gehGassi.Web.Auth
@using gehGassi.Web.Helper
@using gehGassi.Web.Services
@using Microsoft.AspNetCore.Authorization
@using Microsoft.AspNetCore.Hosting
@using Microsoft.AspNetCore.Identity
@using Microsoft.AspNetCore.Mvc.Localization
@using Microsoft.Extensions.Options
@inject IViewLocalizer Localizer
@inject IScriptVersionCalculator ScriptVersionCalculator
@inject IWebHostEnvironment HostingEnvironment
@inject UserManager<ApplicationUser> UserManager
@inject IAuthorizationService AuthorizationService
@{
ApplicationUser appUser = ViewBag.ApplicationUser;
var lang = CultureInfo.CurrentCulture.TwoLetterISOLanguageName;
if (lang == "de")
{
lang += "-DE";
}
else
{
lang += "-US";
}
int numberOfRoles = 0;
if ((await AuthorizationService.AuthorizeAsync(User, Policies.AppUserOnly)).Succeeded && !string.IsNullOrWhiteSpace(User.AppUserId()))
{
numberOfRoles += 1;
}
if ((await AuthorizationService.AuthorizeAsync(User, Policies.CustomerOnly)).Succeeded && User.CustomerId() != null)
{
numberOfRoles += 1;
}
if ((await AuthorizationService.AuthorizeAsync(User, Policies.PowerUserOnly)).Succeeded || (await AuthorizationService.AuthorizeAsync(User, Policies.AdministratorOnly)).Succeeded)
{
numberOfRoles += 1;
}
}
<ul class="sidebar-nav" data-coreui="navigation" data-simplebar>
@if ((await AuthorizationService.AuthorizeAsync(User, Policies.AdministratorOnly)).Succeeded || (await AuthorizationService.AuthorizeAsync(User, Policies.PowerUserOnly)).Succeeded)
{
if (numberOfRoles > 1)
{
<text>
<li class="nav-group">
<a class="nav-link nav-group-toggle rootmenu" href="#"><i class="nav-icon fa-brands fa-superpowers"></i> @Localizer["Area_Administration"]</a>
<ul class="nav-group-items">
</text>
}
<li class="nav-item">
<a class="nav-link" href="@Url.Action("Index", "Home")"><i class="nav-icon fa fa-gauge-simple-high"></i> @Localizer["Menu_Dashboard"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.CustomersManage, Permission.CustomersRead)">
<a class="nav-link" href="@Url.Action("Index", "Customer")"><i class="nav-icon fa fa-cash-register"></i> @Localizer["Menu_Customers"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.NewsManage, Permission.NewsRead)">
<a class="nav-link" href="@Url.Action("Index", "News")"><i class="nav-icon fa fa-file-lines"></i> @Localizer["Menu_News"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.OrdersAccess)">
<a class="nav-link" href="@Url.Action("Index", "Order")"><i class="nav-icon fa fa-newspaper"></i> @Localizer["Menu_Orders"]</a>
</li>
<li class="nav-group" cb-permissions="@Tools.PermissionList(Permission.AppUsersManage, Permission.AppUsersRead, Permission.DogsManage, Permission.DogsRead, Permission.SettingsManage, Permission.SettingsFeedback, Permission.SettingsComplaints, Permission.AppUserReports)">
<a class="nav-link nav-group-toggle" href="#"><i class="nav-icon fa fa-mobile-screen-button"></i> @Localizer["Menu_App"]</a>
<ul class="nav-group-items">
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.AppUsersManage, Permission.AppUsersRead)">
<a class="nav-link" href="@Url.Action("Index", "AppUser")"><i class="nav-icon fa fa-bone"></i> @Localizer["Menu_AppUsers"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.DogsManage, Permission.DogsRead)">
<a class="nav-link" href="@Url.Action("Index", "Dog")"><i class="nav-icon fa fa-dog"></i> @Localizer["Menu_Dogs"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.AppUsersManage, Permission.AppUserReports)">
<a class="nav-link" href="@Url.Action("Index", "AppUserReport")"><i class="nav-icon fa fa-triangle-exclamation"></i> @Localizer["Menu_AppReports"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.SettingsManage, Permission.SettingsComplaints)">
<a class="nav-link" href="@Url.Action("Index", "WalkComplaint")"><i class="nav-icon fa fa-circle-exclamation"></i> @Localizer["Menu_WalkComplaint"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.SettingsManage, Permission.SettingsFeedback)">
<a class="nav-link" href="@Url.Action("Index", "Feedback")"><i class="nav-icon fa fa-comment-dots"></i> @Localizer["Menu_Feedback"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.AppUsersManage, Permission.AppUsersRead)">
<a class="nav-link" href="@Url.Action("Index", "Walk")"><i class="nav-icon fa fa-person-walking"></i> @Localizer["Menu_Walks"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.AppUsersManage, Permission.AppUsersRead)">
<a class="nav-link" href="@Url.Action("IndexRequests", "Walk")"><i class="nav-icon fa fa-person-circle-question"></i> @Localizer["Menu_PublicWalkRequests"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.AppUsersManage, Permission.AppUsersRead)">
<a class="nav-link" href="@Url.Action("Index", "Conversation")"><i class="nav-icon fa fa-comments"></i> @Localizer["Menu_Conversations"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.SubscriptionsManage, Permission.SubscriptionsRead)">
<a class="nav-link" href="@Url.Action("IndexSubscriptions", "Subscription")"><i class="nav-icon fa fa-eur"></i> @Localizer["Menu_Subscriptions"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.SubscriptionsManage, Permission.SubscriptionsRead)">
<a class="nav-link" href="@Url.Action("IndexBookings", "Subscription")"><i class="nav-icon fa fa-eur"></i> @Localizer["Menu_Subscriptions_Bookings"]</a>
</li>
</ul>
</li>
<li class="nav-group" cb-permissions="@Tools.PermissionList(Permission.ListingsManage, Permission.ListingsRead, Permission.AdvertisementsManage, Permission.AdvertisementsRead, Permission.BannersManage, Permission.BannersRead, Permission.PinsManage, Permission.PinsRead)">
<a class="nav-link nav-group-toggle" href="#"><i class="nav-icon fa fa-mobile-screen-button"></i> @Localizer["Menu_App_Advertisements"]</a>
<ul class="nav-group-items">
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.ListingsManage, Permission.ListingsRead)">
<a class="nav-link" href="@Url.Action("Index", "Listing")"><i class="nav-icon fa fa-medal"></i> @Localizer["Menu_Listings"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.AdvertisementsManage, Permission.AdvertisementsRead)">
<a class="nav-link" href="@Url.Action("Index", "Advertisement")"><i class="nav-icon fa fa-tv"></i> @Localizer["Menu_Advertisements"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.BannersManage, Permission.BannersRead)">
<a class="nav-link" href="@Url.Action("Index", "Banner")"><i class="nav-icon fa fa-panorama"></i> @Localizer["Menu_Banners"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.VouchersManage, Permission.VouchersRead)">
<a class="nav-link" href="@Url.Action("IndexCampaigns", "Voucher")"><i class="nav-icon fa fa-qrcode"></i> @Localizer["Menu_VoucherCampaigns"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.PinsManage, Permission.PinsRead)">
<a class="nav-link" href="@Url.Action("Index", "Pin")"><i class="nav-icon fa fa-map-pin"></i> @Localizer["Menu_Pins"]</a>
</li>
</ul>
</li>
<li class="nav-group" cb-permissions="@Tools.PermissionList(Permission.SettingsManage, Permission.SettingsTaxRates, Permission.SettingsProductCategories, Permission.SettingsProducts, Permission.SettingsShipment, Permission.SettingsShop)">
<a class="nav-link nav-group-toggle" href="#"><i class="nav-icon fa fa-cart-shopping"></i> @Localizer["Menu_Shop"]</a>
<ul class="nav-group-items">
<li class="nav-item ms-2" cb-permissions="@Tools.PermissionList(Permission.SettingsManage, Permission.SettingsTaxRates)">
<a class="nav-link" href="@Url.Action("Index", "TaxRate")"><i class="nav-icon fa fa-coins"></i> @Localizer["Menu_TaxRates"]</a>
</li>
<li class="nav-item ms-2" cb-permissions="@Tools.PermissionList(Permission.SettingsManage, Permission.SettingsShipment)">
<a class="nav-link" href="@Url.Action("Index", "ShipmentCost")"><i class="nav-icon fa fa-truck-fast"></i> @Localizer["Menu_ShipmentCosts"]</a>
</li>
<li class="nav-item ms-2" cb-permissions="@Tools.PermissionList(Permission.SettingsManage, Permission.SettingsShop)">
<a class="nav-link" href="@Url.Action("Index", "ShopSettings")"><i class="nav-icon fa fa-gears"></i> @Localizer["Menu_ShopSettings"]</a>
</li>
<li class="nav-item ms-2" cb-permissions="@Tools.PermissionList(Permission.SettingsManage, Permission.SettingsProducts)">
<a class="nav-link" href="@Url.Action("Index", "Product")"><i class="nav-icon fa fa-box"></i> @Localizer["Menu_Products"]</a>
</li>
<li class="nav-item ms-2" cb-permissions="@Tools.PermissionList(Permission.SettingsManage, Permission.SettingsProductCategories)">
<a class="nav-link" href="@Url.Action("IndexCategories", "Product")"><i class="nav-icon fa fa-box-open"></i> @Localizer["Menu_Product_Categories"]</a>
</li>
</ul>
</li>
<li class="nav-group" cb-permissions="@Tools.PermissionList(Permission.SettingsManage, Permission.SettingsCustomerTypes, Permission.SettingsCustomerBranches, Permission.SettingsAdvertisementCategories, Permission.SettingsDogRaces)">
<a class="nav-link nav-group-toggle" href="#"><i class="nav-icon fa fa-wrench"></i> @Localizer["Menu_Settings"]</a>
<ul class="nav-group-items">
<li class="nav-item ms-2" cb-permissions="@Tools.PermissionList(Permission.SettingsManage, Permission.SettingsCustomerTypes)">
<a class="nav-link" href="@Url.Action("Index", "CustomerType")"><i class="nav-icon fa fa-cash-register"></i> @Localizer["Menu_CustomerTypes"]</a>
</li>
<li class="nav-item ms-2" cb-permissions="@Tools.PermissionList(Permission.SettingsManage, Permission.SettingsCustomerBranches)">
<a class="nav-link" href="@Url.Action("Index", "Branch")"><i class="nav-icon fa fa-tags"></i> @Localizer["Menu_Branches"]</a>
</li>
<li class="nav-item ms-2" cb-permissions="@Tools.PermissionList(Permission.SettingsManage, Permission.SettingsAdvertisementCategories)">
<a class="nav-link" href="@Url.Action("IndexCategories", "Advertisement")"><i class="nav-icon fa fa-image"></i> @Localizer["Menu_Advertisement_Categories"]</a>
</li>
<li class="nav-item ms-2" cb-permissions="@Tools.PermissionList(Permission.SettingsManage, Permission.SettingsDogRaces)">
<a class="nav-link" href="@Url.Action("Index", "DogRace")"><i class="nav-icon fa fa-shield-dog"></i> @Localizer["Menu_DogRaces"]</a>
</li>
<li class="nav-item ms-2" cb-permissions="@Tools.PermissionList(Permission.SettingsManage, Permission.SettingsNewsCategories)">
<a class="nav-link" href="@Url.Action("IndexCategories", "News")"><i class="nav-icon fa fa-newspaper"></i> @Localizer["Menu_NewsCategories"]</a>
</li>
<li class="nav-item ms-2" cb-permissions="@Tools.PermissionList(Permission.SettingsManage, Permission.SettingsTransactionFees)">
<a class="nav-link" href="@Url.Action("Index", "TransactionFee")"><i class="nav-icon fa fa-coins"></i> @Localizer["Menu_TransactionFees"]</a>
</li>
<li class="nav-item ms-2" cb-permissions="@Tools.PermissionList(Permission.SettingsManage, Permission.SettingsTransactionFees)">
<a class="nav-link" href="@Url.Action("IndexGehGassi", "TransactionFee")"><i class="nav-icon fa fa-coins"></i> @Localizer["Menu_GehGassiFees"]</a>
</li>
</ul>
</li>
<li class="nav-group" cb-permissions="@Tools.PermissionList(Permission.UserManage, Permission.UserRead, Permission.SettingsManage, Permission.SettingsFileManager, Permission.SettingsPages, Permission.AppUsersManage, Permission.AppUsersSystemMessages, Permission.AppVersionsAccess)">
<a class="nav-link nav-group-toggle" href="#"><i class="nav-icon fa fa-star"></i> @Localizer["Menu_Special"]</a>
<ul class="nav-group-items">
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.UserManage, Permission.UserRead)">
<a class="nav-link" href="@Url.Action("Index", "User")"><i class="nav-icon fa fa-users-gear"></i> @Localizer["Menu_Users"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.SettingsManage, Permission.SettingsFileManager)">
<a class="nav-link" href="@Url.Action("Index", "FileManager")"><i class="nav-icon fa fa-file-lines"></i> @Localizer["Menu_FileManager"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.SettingsManage, Permission.SettingsPages)">
<a class="nav-link" href="@Url.Action("Index", "Page")"><i class="nav-icon fa fa-file-code"></i> @Localizer["Menu_Pages"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.SettingsManage, Permission.SettingsPages)">
<a class="nav-link" href="@Url.Action("Index", "Faq")"><i class="nav-icon fa fa-question"></i> @Localizer["Menu_Faqs"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.AppUsersManage, Permission.AppUsersSystemMessages)">
<a class="nav-link" href="@Url.Action("Index", "SystemMessage")"><i class="nav-icon fa fa-comments"></i> @Localizer["Menu_SystemMessages"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.AppVersionsAccess)">
<a class="nav-link" href="@Url.Action("Index", "AppVersion")"><i class="nav-icon fa fa-code-fork"></i> @Localizer["Menu_AppVersions"]</a>
</li>
</ul>
</li>
<li class="nav-group" cb-permissions="@Tools.PermissionList(Permission.StatisticsManage)">
<a class="nav-link nav-group-toggle" href="#"><i class="nav-icon fa fa-chart-simple"></i> @Localizer["Menu_Statistics"]</a>
<ul class="nav-group-items">
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.StatisticsManage)">
<a class="nav-link" href="@Url.Action("WalksPerDay", "Statistic")"><i class="nav-icon fa fa-person-walking"></i> @Localizer["Menu_Statistics_WalkPerDay"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.StatisticsManage)">
<a class="nav-link" href="@Url.Action("WalksPerTimeange", "Statistic")"><i class="nav-icon fa fa-person-walking"></i> @Localizer["Menu_Statistics_WalkPerTimeRange"]</a>
</li>
</ul>
</li>
if (numberOfRoles > 1)
{
@:</ul></li>
}
}
@if ((await AuthorizationService.AuthorizeAsync(User, Policies.CustomerOnly)).Succeeded && User.CustomerId() != null)
{
if (numberOfRoles > 1)
{
<text>
<li id="mnuCustomerLi" class="nav-group">
<a class="nav-link nav-group-toggle rootmenu" href="#"><i class="nav-icon fa fa-cash-register"></i> @User.CustomerName().Ellipsis(19)</a>
<ul id="mnuCustomerUl" class="nav-group-items">
</text>
}
<li class="nav-item">
<a class="nav-link" href="@Url.Action("IndexCustomer", "Home")"><i class="nav-icon fa fa-gauge-simple-high"></i> @Localizer["Menu_Dashboard"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.ListingsManage, Permission.ListingsRead)">
<a class="nav-link" href="@Url.Action("IndexCustomer", "Listing")"><i class="nav-icon fa fa-medal"></i> @Localizer["Menu_Listings"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.AdvertisementsManage, Permission.AdvertisementsRead)">
<a class="nav-link" href="@Url.Action("IndexCustomer", "Advertisement")"><i class="nav-icon fa fa-tv"></i> @Localizer["Menu_Advertisements"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.BannersManage, Permission.BannersRead)">
<a class="nav-link" href="@Url.Action("IndexCustomer", "Banner")"><i class="nav-icon fa fa-panorama"></i> @Localizer["Menu_Banners"]</a>
</li>
@* <li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.PinsManage, Permission.PinsRead)">
<a class="nav-link" href="@Url.Action("IndexCustomer", "Pin")"><i class="nav-icon fa fa-map-pin"></i> @Localizer["Menu_Pins"]</a>
</li> *@
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.ShopAccess)">
<a id="mnuCart" class="nav-link" href="@Url.Action("Index", "Shop")"><i class="nav-icon fa fa-store"></i> @Localizer["Menu_Shop"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.ShopAccess)">
<a id="mnuCart" class="nav-link" href="@Url.Action("ShowCart", "Shop")"><i class="nav-icon fa fa-cart-shopping"></i> @Localizer["Menu_Cart"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.OrdersAccess)">
<a class="nav-link" href="@Url.Action("IndexCustomer", "Order")"><i class="nav-icon fa fa-newspaper"></i> @Localizer["Menu_Orders"]</a>
</li>
<li class="nav-item" cb-permissions="@Tools.PermissionList(Permission.UserManage, Permission.UserRead)">
<a class="nav-link" href="@Url.Action("IndexCustomer", "User")"><i class="nav-icon fa fa-users-gear"></i> @Localizer["Menu_Users"]</a>
</li>
if (numberOfRoles > 1)
{
@:</ul></li>
}
}
@if ((await AuthorizationService.AuthorizeAsync(User, Policies.AppUserOnly)).Succeeded && User.AppUserId() != null)
{
if (numberOfRoles > 1)
{
<text>
<li class="nav-group">
<a class="nav-link nav-group-toggle rootmenu" href="#"><i class="nav-icon fa fa-dog"></i> @User.AppUserName().Ellipsis(19)</a>
<ul class="nav-group-items">
</text>
}
<li class="nav-item">
<a class="nav-link" href="@Url.Action("IndexAppUser", "Home")"><i class="nav-icon fa fa-gauge-simple-high"></i> @Localizer["Menu_Dashboard"]</a>
</li>
if (numberOfRoles > 1)
{
@:</ul></li>
}
}
</ul>