void UserService_SavedUser(IUserService sender, SaveEventArgs <IUser> e) { //Add all permissions to user if they have access to the Tea Commerce section, but no permissions at all in Tea Commerce foreach (IUser user in e.SavedEntities) { if (user.AllowedSections.Contains("teacommerce")) { //Chekc if user has no permissions in Tea Commerce Permissions permissions = PermissionService.Instance.Get(user.Id.ToInvariantString()); if (permissions != null && !permissions.IsUserSuperAdmin) { bool createPermissions = permissions.GeneralPermissions.Equals(GeneralPermissionType.None); if (createPermissions) { foreach (Store store in StoreService.Instance.GetAll()) { if (permissions.StoreSpecificPermissions.ContainsKey(store.Id) && !permissions.StoreSpecificPermissions[store.Id].Equals(StoreSpecificPermissionType.None)) { createPermissions = false; break; } } } if (createPermissions) { //Give all general permissions foreach (GeneralPermissionType permissionType in Enum.GetValues(typeof(GeneralPermissionType)).Cast <GeneralPermissionType>()) { permissions.GeneralPermissions |= permissionType; } //Give all store specific permissions to all stores foreach (Store store in StoreService.Instance.GetAll()) { StoreSpecificPermissionType storePermissions = StoreSpecificPermissionType.None; foreach (StoreSpecificPermissionType permissionType in Enum.GetValues(typeof(StoreSpecificPermissionType)).Cast <StoreSpecificPermissionType>()) { storePermissions |= permissionType; } permissions.StoreSpecificPermissions.Add(store.Id, storePermissions); } permissions.Save(); } } } } }
protected void BtnCreate_Click(object sender, EventArgs e) { if (Page.IsValid) { Store store = new Store(TxtName.Text); store.Save(); //Give permissions to the current logged in user Permissions permissions = PermissionService.Instance.GetCurrentLoggedInUserPermissions(); if (permissions != null && !permissions.IsUserSuperAdmin) { StoreSpecificPermissionType storePermissions = StoreSpecificPermissionType.None; foreach (StoreSpecificPermissionType permissionType in Enum.GetValues(typeof(StoreSpecificPermissionType)).Cast <StoreSpecificPermissionType>()) { storePermissions |= permissionType; } permissions.StoreSpecificPermissions.Add(store.Id, storePermissions); permissions.Save(); } const string editOrderFilePath = @"macroScripts\tea-commerce\edit-order.cshtml"; if (File.Exists(HostingEnvironment.MapPath("~" + Path.DirectorySeparatorChar + editOrderFilePath))) { store.UISettings.EditOrderUiFile = editOrderFilePath; store.Save(); } if (store.GeneralSettings.ConfirmationEmailTemplateId != null) { const string emailTemplateFile = @"macroScripts\tea-commerce\email-template-confirmation.cshtml"; if (File.Exists(HostingEnvironment.MapPath("~" + Path.DirectorySeparatorChar + emailTemplateFile))) { EmailTemplate emailTemplate = EmailTemplateService.Instance.Get(store.Id, store.GeneralSettings.ConfirmationEmailTemplateId.Value); EmailTemplateSettings defaultSettings = emailTemplate.Settings.SingleOrDefault(s => s.LanguageId == null); if (defaultSettings != null) { defaultSettings.TemplateFile = emailTemplateFile; } emailTemplate.Save(); } } if (store.GeneralSettings.PaymentInconsistencyEmailTemplateId != null) { const string emailTemplateFile = @"macroScripts\tea-commerce\email-template-payment-inconsistency.cshtml"; if (File.Exists(HostingEnvironment.MapPath("~" + Path.DirectorySeparatorChar + emailTemplateFile))) { EmailTemplate emailTemplate = EmailTemplateService.Instance.Get(store.Id, store.GeneralSettings.PaymentInconsistencyEmailTemplateId.Value); EmailTemplateSettings defaultSettings = emailTemplate.Settings.SingleOrDefault(s => s.LanguageId == null); if (defaultSettings != null) { defaultSettings.TemplateFile = emailTemplateFile; } emailTemplate.Save(); } } Redirect(WebUtils.GetPageUrl(Constants.Pages.EditStore) + "?id=" + store.Id); } }