コード例 #1
0
        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();
                        }
                    }
                }
            }
        }
コード例 #2
0
        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);
            }
        }