GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  JIFTY::MANUAL::ACCESSCONTROL_ZHTW (3)

.ds Aq ’

NAME

Jifty::Manual::AccessControl_zhtw - XX Jifty XXX ACL XX

CONTENTS

DESCRIPTION

X Jifty XXXXXXXXXXXXXXXX (ACL) XXXXXXXXXXXXX current_user_can XXXXXXXXXXXXXXXXXXXXXXXX Jifty::Record XXXXXXXXX ( ACL )X

XXXXXXXXX CRUD XXXXXXXXXXXXXXXX current_user XXX

X create() XXXXX current_user_can(create) XX false XXXXXXXX

X _value() X somefieldname XXX XX current_user_can(read) XX false XXXXXXXX

X _set() X set_somefieldname XXXXX current_user_can(read) XX false XXXXXXXX

X delete() XXXXX current_user_can(read) XX false XXXXXXXX

XXXXXXXXX current_user_can XX 1X

XXXXX ACLs XXXXXXXX Jifty::Record XXX current_user_can() XXX

It’s likely that at some point, you’ll decide you want to ask other questions on certain types of operations. Say, you only want to let administrators update the paid_account field. In that case, you’d override check_update_rights() to look for the admin right rather than the update right, if the FIELD is paid_account.

XXXXXXXXXXX ( ENABLING ACCESS CONTROL USING THE USER PLUGIN )

XXXXX AccessControl XXXXXXXX User XXXXXXXXXXXX X Authentication::Password XXXXXXXX etc/config.yml XXXXXXXXX:



    Plugins:
      - Authentication::Password: {}



XXXXXXX App::Model::User XXXXXXX Jifty::Plugin::User::Mixin::Model::User XXXXXXX Jifty::Plugin::Authentication::Password::Mixin::Model::User XXXX:



    use strict;
    use warnings;

    package App::Model::User;

    use Jifty::DBI::Schema;

    use App::Record schema {
    };

    use Jifty::Plugin::User::Mixin::Model::User;
    use Jifty::Plugin::Authentication::Password::Mixin::Model::User;

    # Your model-specific methods go here.

    1;



XXXXXX jifty XXXXXXXXXXXXXXXXXX:



    $ bin/jifty schema --setup



    XXXXXX

XX User XXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXX

XXXXXXXXXXXXX ( schema ) XXXXXXXXXXXXXX:



    use Jifty::DBI::Schema;
    use App::Record schema {
        column extra_column_name;

        column mygroup =>
               valid_values are qw/admin moderator user/,
               default is user;

        # more columns if necessary
    };



XXXXXXXXXXXXXXXXXX Jifty::Manual::Models X Jifty::DBI::Schema XXXXXXXXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX (superuser) XXXX

XXXXXXXX App::Model::User XX current_user_can XX:



    sub current_user_can {
        my $self = shift;
        my $type = shift;
        my %args = (@_);

        return 0
            if ( $type eq update
                and !$self->current_user->is_superuser
                and $args{column} eq mygroup );


        return 1;
    }



XXX App::CurrentUser XXXXXX _init XX XXXXXXXXXXXXXX CurrentUser XXX

XXXXXXXXX _init XXXXXXXXXXXX



    package App::CurrentUser;

    use strict;
    use warnings;

    use base qw(Jifty::CurrentUser);

    __PACKAGE__->mk_accessors(qw(group));

    sub _init {
        my $self = shift;
        my %args = (@_);

        if (keys %args) {
            $self->user_object(App::Model::User->new(current_user => $self));
            $self->user_object->load_by_cols(%args);

            if ( $self->user_object->mygroup eq admin) {
                $self->is_superuser(1);
            };

            $self->group($self->user_object->mygroup);
        };
        $self->SUPER::_init(%args);
    };



XXXXXXX App::CurrentUser , X admin XXXXXXXXXXXXXXX (superuser) XXXXXXXXXXXXXXX Jifty->web->current_user->groupX

CWAuthentication::Password XXXXXXXX

Authentication::Password XXXXXXXXXXXXXXXXXXXXXXXXXX
/login XXXXXXXXXXXXXXXX (signup) XXXX

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX / X

/logout XXXXXXXX
/signup XXXXXXX XXXXXXXXXXXXXXX
/passwordreminder XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX X /let/reset_lost_password XXXXX
/let/confirm_email XXXXXXXXXXXXXXXXXXXXXXXXXXX
/let/reset_lost_password XXXXX XXXXXXXXXXXXXXX

    Doing checks at other places in your code

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXX Jifty->web->current_user XXX App::CurrentUser XXXXXXXXXXXXXXXXXXXXXXXXXXX:
username XXXXXXXXXXXXXXXXXXXXX undef
id XXXXXXXX ID XXXXXXXXXX undef

SEE ALSO

Jifty::CurrentUser, Jifty::Record, Jifty::RightsFrom, Jifty::Plugin::Authentication::Ldap, Jifty::Plugin::Authentication::CAS

XXX

XXX (c9s) ( cornelius.howl_at_gmail.com ) <http://oulixe.us/>
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 JIFTY::MANUAL::ACCESSCONTROL_ZHTW (3) 2010-09-25

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.