问题列表 - 第19243页

实用的Zend_ACL + Zend_Auth实现和最佳实践

语境:

我的问题涉及一个我正在开发的论坛,就像SO一样:

  1. 有权访问查看主题但无法回复或投票的访客
  2. 具有足够代表的成员可以编辑/投票其他线程,默认情况下,他们可以回复并拥有与来宾相同的权限
  3. 管理员几乎可以做任何事情

我希望此ACL在站点范围内应用,默认情况下拒绝所有资源.

我阅读了使用Zend_Acl的基础知识 - 您基本上创建角色(访客,成员,管理员),并拒绝或允许这些角色的资源(控制器,方法).关于如何在应用程序中实际实现acl代码的文档并不是非常具体,所以我继续关注SO ..

来自marek的一个非常有用的stackoverflow 答案揭示了这个问题,但由于我的不熟悉,我仍然不能完全理解如何正确地实现这一点,并考虑到最佳实践.

海报configAcl.php在应用程序根目录中有一个静态文件,用于初始化acl对象,添加角色,从每个控制器创建资源,提供admin对所有内容的normal访问,访问除管理员之外的所有内容,并将acl对象存储在注册表中以供以后使用.

$acl = new Zend_Acl();

$roles  = array('admin', 'normal');

// Controller script names. You have to add all of them if credential check
// is global to your application.
$controllers = array('auth', 'index', 'news', 'admin');

foreach ($roles as $role) {
    $acl->addRole(new Zend_Acl_Role($role));
}
foreach ($controllers as $controller) {
    $acl->add(new Zend_Acl_Resource($controller));
}

// Here comes credential definiton for admin user.
$acl->allow('admin'); …
Run Code Online (Sandbox Code Playgroud)

php zend-framework zend-auth zend-acl

42
推荐指数
1
解决办法
2万
查看次数

如何加密我的django代码?

我必须将我的django项目上传到共享托管服务提供商.

如何加密我的代码?

我想在服务器上隐藏我的代码.

谢谢 :)

django

0
推荐指数
2
解决办法
1358
查看次数

在公共功能分支中使用git rebase

您可以看到网络上的所有人都建议不要git rebase在公共分支中使用,但如果您总是重新定义功能分支,我看不出有什么问题.

我的团队总是使用分支功能(哇),我们习惯只在本地使用它,所以rebase不是问题,但有时我们想向另一个开发人员展示部分完成的功能的代码,所以我们只是宣传它,但是我们失去了所有的优点git rebase,或者至少是你在网上可以阅读的内容.

我不明白是什么问题,如果在同一个公共分支工作的开发人员从未将它合并到任何分支(当该分支上仍有开发时),并且当他们拉动它时,他们使用rebase操作.对分支所做的任何更改都将始终在远程分支的顶部进行rebase,因此永远不会丢失,并且您不会遇到重复相同提交的问题.

附加1:

到目前为止,没有一个答案显示了将要发生的问题以及它将如何发生,所以我将试着更清楚.

我将举例说明使用rebase的工作流程(在前面的段落中描述得很糟,抱歉)我没有看到任何问题.

初始状态:

master         ==========A
origin/feature           +=====AB
feature user A           +=====AB
feature user B           +=====AB
Run Code Online (Sandbox Code Playgroud)

master得到一些提交,用户A做了一些提交:

master         ==========A=====C
origin/feature           +=====AB
feature user A           +=====AB====D
feature user B           +=====AB
Run Code Online (Sandbox Code Playgroud)

用户A做了git pull --rebase(他总是这样做)来更新他的分支,没有新的东西,然后他重新掌握并推送:

master         ==========A=====C
origin/feature                 +=====ACB'=====ACB'D
feature user A                 +=====ACB'=====ACB'D
feature user B           +=====AB
Run Code Online (Sandbox Code Playgroud)

(注意B'是仍然代表变化B的新提交)

然后用户B做了一些提交:

master         ==========A=====C
origin/feature                 +=====ACB'=====ACB'D
feature user A                 +=====ACB'=====ACB'D
feature user B           +=====AB======E
Run Code Online (Sandbox Code Playgroud)

用户B终于做了一次git pull --rebase,没有必要对master进行rebase,所以他只是推动:

master         ==========A=====C
origin/feature                 +=====ACB'=====ACB'D======E'
feature user …
Run Code Online (Sandbox Code Playgroud)

git workflow

28
推荐指数
3
解决办法
1万
查看次数

如何将(id)发件人添加到以下 - (IBAction)?

如何将(id)发件人添加到以下代码?

- (IBAction) gobutton: (UIButton *) button5 {
Run Code Online (Sandbox Code Playgroud)

我尝试的一切都失败了,任何帮助都会受到赞赏.谢谢.

编辑:我需要在(IBAction)中保留(UIButton*)按钮5参考

iphone objective-c uibutton iphone-sdk-3.0 cocoa-design-patterns

-1
推荐指数
1
解决办法
1万
查看次数

在python中记录输出声音

我想以编程方式记录我的笔记本电脑中出现的声音.我发现PyAudio并想出了以下完成任务的程序:

import pyaudio, wave, sys

chunk = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = sys.argv[1]

p = pyaudio.PyAudio()
channel_map = (0, 1)

stream_info = pyaudio.PaMacCoreStreamInfo(
    flags = pyaudio.PaMacCoreStreamInfo.paMacCorePlayNice,
    channel_map = channel_map)

stream = p.open(format = FORMAT,
                rate = RATE,
                input = True,
                input_host_api_specific_stream_info = stream_info,
                channels = CHANNELS)

all = []
for i in range(0, RATE / chunk * RECORD_SECONDS):
        data = stream.read(chunk)
        all.append(data)
stream.close()
p.terminate()

data = ''.join(all)
wf …
Run Code Online (Sandbox Code Playgroud)

python audio macos audio-streaming

8
推荐指数
1
解决办法
7884
查看次数

equals()方法?

不应该让一个物体平等吗?

    String hej = pets.getBark();
    if(hej.equals("woff"))
Run Code Online (Sandbox Code Playgroud)

为什么你能传递一个字符串woff?

java

0
推荐指数
1
解决办法
311
查看次数

如何删除数据库

我使用了以下sytanx

drop database filmo; 
Run Code Online (Sandbox Code Playgroud)

并得到以下错误:

ERROR 1010 (HY000): Error dropping database (can't rmdir './filmo/', errno: 17)
Run Code Online (Sandbox Code Playgroud)

有任何想法吗..

mysql database-administration

19
推荐指数
3
解决办法
5万
查看次数

如何在Tab栏中添加"更多"按钮?

我的iPhone应用程序在视图底部有一个标签栏控制器 - 此刻我有三个按钮.但是,我想添加更多,但为了这样做,我需要将三个按钮中的最后一个按钮变为"更多..."按钮,因为否则其他按钮上的文本会相互碰撞.

我知道如果标签栏中有超过5个按钮,那么它会自动创建一个更多的按钮 - 但是有没有办法通过编辑功能手动调用它?

谢谢.

iphone objective-c uitabbarcontroller uitabbaritem uitabbar

1
推荐指数
2
解决办法
1万
查看次数

Web应用程序/ASP.Net中Session的用途是什么?

我是Web技术的新手,我想知道Session的用法。Session的基本用途是什么,它仅用于保存体数据还是有其他用途?

asp.net

0
推荐指数
1
解决办法
1万
查看次数

这个在Perl中的eval语句出了什么问题?

evalPerl中的这个陈述有什么问题?我试图通过捕获使用XML :: LibXML解析文件时抛出的任何异常来检查XML是否有效:

use XML::LibXML;
my $parser = XML::LibXML->new();   #creates a new libXML object.

    eval { 
    my $tree = $parser->parse_file($file) # parses the file contents into the new libXML object.
    };
    warn() if $@;
Run Code Online (Sandbox Code Playgroud)

perl eval libxml2

3
推荐指数
2
解决办法
740
查看次数