我正在使用cakePHP v 1.3在Windows(XAMPP)上开发一个应用程序.
大多数控制器都是在启用管理路由的情况下烘焙的.我想通过登录页面保护每个控制器的管理操作.我怎么能这样做而不重复?
该问题的一个解决方案是"我在每个控制器的admin_index操作中检查登录信息",然后相应地显示登录屏幕.
有没有更好的方法呢?
admin(http:// localhost/app/admin)的详细URL 指向用户控制器的index_admin操作(在routes.php文件中为此创建了一个新路由)
模型:
class Store(models.Model):
name = models.CharField(max_length = 20)
class Admin:
pass
def __unicode__(self):
return self.name
class Stock(Store):
products = models.ManyToManyField(Product)
class Admin:
pass
def __unicode__(self):
return self.name
class Product(models.Model):
name = models.CharField(max_length = 128, unique = True)
parent = models.ForeignKey('self', null = True, blank = True, related_name='children')
(...)
def __unicode__(self):
return self.name
mptt.register(Product, order_insertion_by = ['name'])
Run Code Online (Sandbox Code Playgroud)
admin.py:
from bar.drinkstore.models import Store, Stock
from django.contrib import admin
admin.site.register(Store)
admin.site.register(Stock)
Run Code Online (Sandbox Code Playgroud)
现在,当我查看管理站点时,我可以从列表中选择任何产品.但我想有一个有限的选择 - 只留下.在mptt类中有功能:
is_leaf_node() - 如果模型实例是叶节点(它没有子节点),则返回True,否则返回False.
但我不知道如何连接它
我正在尝试创建一个子类:在admin.py中:
from bar.drinkstore.models import Store, …Run Code Online (Sandbox Code Playgroud) 我有一个示例Rails 3.1.1应用程序,我已设置为管理用户帐户等.
我运行以下步骤将admin属性添加到用户表:
$ rails generate migration add_admin_to_user admin:boolean
Run Code Online (Sandbox Code Playgroud)
在我的迁移中添加了以下内容:
class AddAdminToUser < ActiveRecord::Migration
def self.up
add_column :users, :admin, :boolean, :default => false
end
def self.down
remove_column :users, :admin
end
end
Run Code Online (Sandbox Code Playgroud)
然后我运行db:migrate并将以下内容添加到我的布局文件中:
<% if current_user.admin? %>
You are ADMIN.
<%end %>
Run Code Online (Sandbox Code Playgroud)
然后,为了添加第一个管理员用户,我使用了以下种子文件:
puts 'SETTING UP DEFAULT USER LOGIN'
user = User.create! :name => 'Test User', :email => 'test@test.com', :password => 'password', :password_confirmation => 'password'
puts 'New user created: ' << user.name
Run Code Online (Sandbox Code Playgroud)
这很有用,所以我随后用admin字段对它进行了调整:
puts 'SETTING UP DEFAULT USER LOGIN'
user = …Run Code Online (Sandbox Code Playgroud) 我已经为主题自定义创建了一个函数.
function create_theme_option() {
add_menu_page( 'Manage Options', //Page Title
'Theme Option', //WP Administrator Menu Title
'manage_options', //
'theme-options', //Link to a page to your Administration Area
'deploy_theme_options', //Function Name
get_template_directory_uri() . '/Plugins/Background Changer/images/icons/icon.png',//Menu Icon
99);
add_submenu_page("theme-options", "Theme Settings", "Theme Settings", 1, "theme-settings", "theme_settings");
add_submenu_page("theme-options", "Manage Header", "Manage Header", 1, "manage-header", "manage_header");
add_submenu_page("theme-options", "Social Media", "Social Media Links", 1, "social-media", "social_media");
add_submenu_page("theme-options", "Catalog Manager", "Catalog Manager", 1, "catalog-manager", "catalog_manager");
}
Run Code Online (Sandbox Code Playgroud)
但我注意到在标题"主题选项"之后,旁边会出现另一个文本作为"主题选项".检查下面的图片:

我怎样才能解决这个问题?请帮忙!
我有以下模型(一个例子,不是一个真正的例子):
class ModelB(models.Model):
name = models.CharField(max_length=50)
def __str__(self):
return self.name
class ModelA(models.Model):
code = models.CharField(max_length=50, unique=True, help_text="Code unique")
foreignkey = models.ForeignKey(ModelB, unique=True)
Run Code Online (Sandbox Code Playgroud)
在我的admin.py中,我有:
class ModelBAdmin(admin.ModelAdmin):
list_display = ('name',)
class ModelAAdmin(admin.ModelAdmin):
list_display = ('code', 'foreignkey')
admin.site.register(ModelA, ModelAAdmin)
admin.site.register(ModelB, ModelBAdmin)
Run Code Online (Sandbox Code Playgroud)
我会做类似的事情:
class ModelBAdmin(admin.ModelAdmin):
list_display = ('name', 'code')
Run Code Online (Sandbox Code Playgroud)
该代码必须是来自ModelA代码的代码关系。我该怎么做?
PD:对不起,我的英语...
非常感谢,安东尼奥。
我只是将我的Magento商店移动到我的localhost环境进行测试使用,我也使用Git来维护代码,但是在我将所有文件移动到我的本地环境后,我无法登录我的管理页面,但我仍然可以看到我的前端页面和git,数据库,似乎运作良好.
当我输入错误的管理员/密码到我的管理页面时,它仍然给我"密码无效".但是当我输入正确的页面时,它只是刷新页面并保持在登录页面,没有任何反应.
有没有人以前遇到过这个问题?有什么想法吗?
提前致谢!
我目前正在为Silverstripe 3.1开发自己的用户管理模块.我遇到了几个特定页面类型的大问题...但我的所有问题都是由CMS预览窗格引起的.
有没有办法在逐页或站点范围内禁用此预览窗格?
这里有一个更详细的描述我的问题,给出一些背景.
场景1)我有"LogoutPage"类型,允许用户添加到导航区域的链接.此页面类型通过在init()函数上简单调用$ memeber-> logout()来处理注销,然后将用户重定向到CMS中管理员指定的位置.
我的问题是,当在CMS中生成预览时,从预览窗格调用init(),强制用户注销并删除编辑LogoutPage的详细信息的功能.
场景2)我还编写了一站式"MemberProfilePage"类型,当找不到当前用户时,它还处理注册,密码提醒和登录.当用户登录系统时,这依赖于下面的代码示例来生成交替的Title,MenuTitle和Content变量.
遗憾的是,预览窗格会生成错误,因为此时无法访问父类,这也可以通过简单地禁用此页面类型的预览窗格来解决.
public function getTitle(){
if($m = Member::currentUser()){
return parent::getTitle() ;
} else {
return $this->NotLoggedInTitle ;
}
}
public function getMenuTitle(){
if($m = Member::currentUser()){
return parent::getMenuTitle() ;
} else {
return $this->NotLoggedInMenuTitle ;
}
}
public function getContent(){
if($m = Member::currentUser()){
return parent::getContent() ;
} else {
return $this->NotLoggedInContent ;
}
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试了大约过去2小时使用此论坛帖子上显示的建议,但我做的任何事情似乎都无效.它已经达到了我无法证明在这方面花费更多时间并且可能必须回滚到3.0的程度,这在这一点上绝对不是理想的.
我在Magento设立了"店主"角色.具有该角色的用户将只能添加/编辑/删除产品.
我需要的是告诉我如何限制这些用户在他们转到目录 - >管理产品时只能看到列表中的产品?
如果可能的话,我想通过代码编辑实现这一目标.
另请注意,所有用户都使用同一商店.
谢谢
谁能告诉我为管理员后端创建CRUD的正式方法是什么?
在CakePHP 2中,已烘焙的代码在函数名称和视图文件之前使用'admin_'进行了扩展。在CakePHP中,我似乎再也找不到关于它如何完成操作的任何直接信息。烘烤控制台不再要求管理员。在本主题中:https : //github.com/cakephp/bake/issues/28我看到他们提到使用--prefix扩展名,但随后将控制器放置在单独的/ Admin文件夹中,而CRUD功能保持其正常名称。在食谱()的某些部分,我仍然看到它们提到了诸如admin_view之类的函数。
那么谁能告诉我从3.2版本开始进行此操作的官方“蛋糕”方法是什么?
我在Wordpress主题设置下拉选项中添加了Select2 js以提供搜索功能,以添加搜索-> http://nimb.ws/1QW6id
我已将以下代码添加到我的管理选项文件中:
<?php if(is_admin()) { ?>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css" rel="stylesheet" />
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/js/select2.min.js"></script>
<script type="text/javascript">
$(document).ready(function($) {
$('.option-tree-ui-select').select2();
});
</script>
<?php } ?>
Run Code Online (Sandbox Code Playgroud)
在管理端可以使用,但是代码与管理端媒体菜单冲突。媒体菜单会持续加载,并且不允许上传新图像。当我删除新代码时,媒体功能开始正常工作。
有想法该怎么解决这个吗?
admin ×10
cakephp ×2
django ×2
magento ×2
wordpress ×2
backend ×1
cakephp-1.3 ×1
cakephp-3.x ×1
cakephp-bake ×1
crud ×1
devise ×1
duplicates ×1
editing ×1
media ×1
php ×1
preview ×1
product ×1
python ×1
roles ×1
routes ×1
security ×1
silverstripe ×1