Merge branch 'master' of git@github.com:gallery/gallery3-contrib into bharat_dev
This commit is contained in:
commit
04b8238a44
|
@ -3,6 +3,6 @@
|
|||
<? $not_first = 0; ?>
|
||||
<? foreach ($tags as $tag): ?>
|
||||
<?= ($not_first++) ? "," : "" ?>
|
||||
<a href="<?= url::site("tags/{$tag->name}") ?>"><?= html::clean($tag->name) ?></a>
|
||||
<a href="<?= $tag->url() ?>"><?= html::clean($tag->name) ?></a>
|
||||
<? endforeach ?>
|
||||
</div>
|
||||
|
|
|
@ -34,7 +34,7 @@ class Json_Album_Controller extends Controller {
|
|||
$item = ORM::factory("item", $item_id);
|
||||
access::required("view", $item);
|
||||
|
||||
$children = $item->children(null, 0, $where);
|
||||
$children = $item->children(null, null, $where);
|
||||
$encoded = array();
|
||||
foreach ($children as $id => $child){
|
||||
$encoded[$id] = self::child_json_encode($child);
|
||||
|
@ -44,7 +44,7 @@ class Json_Album_Controller extends Controller {
|
|||
}
|
||||
|
||||
function is_admin() {
|
||||
if (user::active()->admin) {
|
||||
if (identity::active_user()->admin) {
|
||||
print json_encode(array("result" => "success", "csrf" => access::csrf_token()));
|
||||
return;
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ class Json_Album_Controller extends Controller {
|
|||
|
||||
function albums($item_id) {
|
||||
|
||||
print $this->child_elements($item_id,array("type" => "album"));
|
||||
print $this->child_elements($item_id, array(array("type", "=", "album")));
|
||||
}
|
||||
|
||||
function children($item_id){
|
||||
|
|
|
@ -18,15 +18,19 @@
|
|||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
class ldap_installer {
|
||||
static function install() {
|
||||
module::set_version("ldap", 1);
|
||||
$root = item::root();
|
||||
$ldap_provider = new IdentityProvider("ldap");
|
||||
foreach ($ldap_provider->groups() as $group) {
|
||||
module::event("group_created", $group);
|
||||
access::allow($group, "view", $root);
|
||||
access::allow($group, "view_full", $root);
|
||||
static function can_activate() {
|
||||
$messages = array();
|
||||
if (array_search("ldap", get_loaded_extensions()) === false) {
|
||||
$messages["error"][] =
|
||||
t("Cannot install LDAP identity provider as the PHP LDAP extension module is not enabled.");
|
||||
} else {
|
||||
$messages["warn"][] = IdentityProvider::confirmation_message();
|
||||
}
|
||||
return $messages;
|
||||
}
|
||||
|
||||
static function install() {
|
||||
IdentityProvider::change_provider("ldap");
|
||||
}
|
||||
|
||||
static function uninstall() {
|
||||
|
@ -36,4 +40,14 @@ class ldap_installer {
|
|||
module::event("group_deleted", $group);
|
||||
}
|
||||
}
|
||||
|
||||
static function initialize() {
|
||||
module::set_version("ldap", 1);
|
||||
$root = item::root();
|
||||
foreach (IdentityProvider::instance()->groups() as $group) {
|
||||
module::event("group_created", $group);
|
||||
access::allow($group, "view", $root);
|
||||
access::allow($group, "view_full", $root);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -239,9 +239,6 @@ class Ldap_User implements User_Definition {
|
|||
case "id":
|
||||
return $this->ldap_entry["uidnumber"][0];
|
||||
|
||||
case "groups":
|
||||
return IdentityProvider_Ldap_Driver::groups_for($this);
|
||||
|
||||
case "locale": // @todo
|
||||
return null;
|
||||
|
||||
|
@ -266,6 +263,10 @@ class Ldap_User implements User_Definition {
|
|||
}
|
||||
}
|
||||
|
||||
public function groups() {
|
||||
return IdentityProvider_Ldap_Driver::groups_for($this);
|
||||
}
|
||||
|
||||
public function avatar_url($size=80, $default=null) {
|
||||
return sprintf("http://www.gravatar.com/avatar/%s.jpg?s=%d&r=pg%s",
|
||||
md5($this->email), $size, $default ? "&d=" . urlencode($default) : "");
|
||||
|
|
|
@ -1,6 +1,3 @@
|
|||
name = "LDAP"
|
||||
description = "Use LDAP for authentication"
|
||||
version = 1
|
||||
|
||||
; Don't show this module on the module administration screen
|
||||
no_module_admin = 1
|
||||
|
|
|
@ -32,6 +32,9 @@ class Admin_register_Controller extends Admin_Controller {
|
|||
access::verify_csrf();
|
||||
|
||||
$post = new Validation($_POST);
|
||||
$post->add_rules("policy", "required");
|
||||
$post->add_rules("group", array($this, "passthru"));
|
||||
$post->add_rules("email_verification", array($this, "passthru"));
|
||||
$group_list = array();
|
||||
if ($post->validate()) {
|
||||
module::set_var("registration", "policy", $post->policy);
|
||||
|
@ -49,6 +52,12 @@ class Admin_register_Controller extends Admin_Controller {
|
|||
}
|
||||
}
|
||||
|
||||
// We need this validation callback in order to have the optional fields copied to
|
||||
// validation array.
|
||||
public function passthru($field) {
|
||||
return true;
|
||||
}
|
||||
|
||||
public function activate() {
|
||||
access::verify_csrf();
|
||||
|
||||
|
|
|
@ -37,13 +37,13 @@ class register_Controller extends Controller {
|
|||
$policy = module::get_var("registration", "policy");
|
||||
if ($policy == "visitor") {
|
||||
if ($pending_user->state == 1) {
|
||||
Session::instance()->set("registration_first_usage");
|
||||
$user = register::create_new_user($pending_user->id);
|
||||
Session::instance()->set("registration_first_usage");
|
||||
auth::login($user);
|
||||
Session::instance()->set("registration_first_usage", true);
|
||||
$pending_user->delete();
|
||||
} else {
|
||||
register::send_confirmation($pending_user);
|
||||
$user = register::create_new_user($pending_user->id, true);
|
||||
message::success(t("A confirmation email has been sent to your email address."));
|
||||
}
|
||||
} else if ($pending_user->state == 1) {
|
||||
|
|
|
@ -21,8 +21,13 @@ class register_Core {
|
|||
private static $_states;
|
||||
|
||||
static function format_registration_state($state) {
|
||||
if (empty(self::$_state)) {
|
||||
self::$_states = array(t("Unconfirmed"), t("Confirmed"), t("Activated"));
|
||||
if (empty(self::$_states)) {
|
||||
$policy = module::get_var("registration", "policy");
|
||||
$email_verification = module::get_var("registration", "email_verification");
|
||||
$pending = $policy == "admin_only" || ($policy == "admin_approval" && !$email_verification);
|
||||
self::$_states = array(t("Unconfirmed"),
|
||||
$pending ? t("Pending") : t("Confirmed"),
|
||||
t("Activated"));
|
||||
}
|
||||
return self::$_states[$state];
|
||||
}
|
||||
|
@ -37,10 +42,11 @@ class register_Core {
|
|||
return $user->loaded();
|
||||
}
|
||||
|
||||
static function send_user_created_confirmation($user) {
|
||||
static function send_user_created_confirmation($user, $requires_first=false) {
|
||||
$message = new View("register_welcome.html");
|
||||
$message->user = $user;
|
||||
$message->site_url = url::abs_site("register/first/{$user->hash}");
|
||||
$message->site_url = $requires_first ? url::abs_site("register/first/{$user->hash}") :
|
||||
url::abs_site("");
|
||||
self::_sendemail($user->email, t("Your userid has been created"), $message);
|
||||
}
|
||||
|
||||
|
|
|
@ -31,6 +31,8 @@
|
|||
<? if (!empty($group_list)): ?>
|
||||
<label for="group" class="g-left"> <?= t("Default group: ") ?></label>
|
||||
<?= form::dropdown(array("name" => "group"), $group_list, $form["group"]) ?></label>
|
||||
<? else: ?>
|
||||
<?= form::hidden("group", $form["group"]) ?></label>
|
||||
<? endif ?>
|
||||
</li>
|
||||
<li>
|
||||
|
|
32
modules/sso/helpers/sso_event.php
Normal file
32
modules/sso/helpers/sso_event.php
Normal file
|
@ -0,0 +1,32 @@
|
|||
<?php defined("SYSPATH") or die("No direct script access.");/**
|
||||
* Gallery - a web based photo album viewer and editor
|
||||
* Copyright (C) 2000-2009 Bharat Mediratta
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or (at
|
||||
* your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful, but
|
||||
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
class sso_event {
|
||||
static function gallery_ready() {
|
||||
$sso_username = Input::instance()->server("REMOTE_USER");
|
||||
$user = Session::instance()->get("user");
|
||||
if (empty($user) || $user->name != $sso_username) {
|
||||
try {
|
||||
identity::set_active_user(identity::lookup_user_by_name($sso_username));
|
||||
} catch (Exception $e) {
|
||||
Kohana_Log::add("error", "Couldn't authenticate as $sso_username: " .
|
||||
$e->getMessage() . "\n" . $e->getTraceAsString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
3
modules/sso/module.info
Normal file
3
modules/sso/module.info
Normal file
|
@ -0,0 +1,3 @@
|
|||
name = "SSO"
|
||||
description = "Support single-signon authentication"
|
||||
version = 1
|
|
@ -85,8 +85,8 @@ class tagfaces_Controller extends Controller {
|
|||
$str_face_title = str_replace("'", "\'", Input::instance()->post("face_title"));
|
||||
$str_face_description = str_replace("'", "\'", Input::instance()->post("face_description"));
|
||||
$item_data = Input::instance()->post("item_id");
|
||||
$str_x1 = Input::instance()->post("x");
|
||||
$str_y1 = Input::instance()->post("y");
|
||||
$str_x1 = Input::instance()->post("x1");
|
||||
$str_y1 = Input::instance()->post("y1");
|
||||
$str_x2 = Input::instance()->post("x2");
|
||||
$str_y2 = Input::instance()->post("y2");
|
||||
|
||||
|
@ -192,13 +192,17 @@ class tagfaces_Controller extends Controller {
|
|||
// Generate input boxes to hold the coordinates of the face.
|
||||
$coordinates_group = $form->group("FaceCoordinates")
|
||||
->label(t("Coordinates:"));
|
||||
$coordinates_group->input("x")
|
||||
$coordinates_group->input("x1")
|
||||
->id('x1')
|
||||
->label(t("X1"));
|
||||
$coordinates_group->input("y")
|
||||
$coordinates_group->input("y1")
|
||||
->id('y1')
|
||||
->label(t("Y1"));
|
||||
$coordinates_group->input("x2")
|
||||
->id('x2')
|
||||
->label(t("X2"));
|
||||
$coordinates_group->input("y2")
|
||||
->id('y2')
|
||||
->label(t("Y2"));
|
||||
|
||||
// Add the id# of the photo and a save button to the form.
|
||||
|
|
|
@ -53,8 +53,8 @@
|
|||
// Our simple event handler, called from onChange and onSelect
|
||||
// event handlers, as per the Jcrop invocation above
|
||||
function showCoords(c) {
|
||||
jQuery('#x').val(c.x);
|
||||
jQuery('#y').val(c.y);
|
||||
jQuery('#x1').val(c.x);
|
||||
jQuery('#y1').val(c.y);
|
||||
jQuery('#x2').val(c.x2);
|
||||
jQuery('#y2').val(c.y2);
|
||||
};
|
||||
|
@ -87,10 +87,10 @@
|
|||
#face_description {
|
||||
width: 400px;
|
||||
}
|
||||
#x {
|
||||
#x1 {
|
||||
width: 40px;
|
||||
}
|
||||
#y {
|
||||
#y1 {
|
||||
width: 40px;
|
||||
}
|
||||
#x2 {
|
||||
|
@ -108,7 +108,7 @@ li {
|
|||
</style>
|
||||
|
||||
<div id="g-coordinates">
|
||||
<?= $form ?>
|
||||
<?=$form ?>
|
||||
</div>
|
||||
|
||||
<br/><br/><br/>
|
||||
|
@ -121,6 +121,12 @@ li {
|
|||
</div>
|
||||
</fieldset>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<br/>
|
||||
|
||||
<div id="g-exit-faces">
|
||||
|
|
|
@ -83,7 +83,7 @@
|
|||
foreach ($existingFaces as $oneFace) {
|
||||
$oneTag = ORM::factory("tag", $oneFace->tag_id)
|
||||
?>
|
||||
<area shape="rect" coords="<?=$oneFace->x1 ?>,<?=$oneFace->y1 ?>,<?=$oneFace->x2 ?>,<?=$oneFace->y2 ?>" href="<?=url::site("tags/$oneFace->tag_id") ?>" title="<?=html::clean($oneTag->name); ?>" alt="<?=$oneTag->name; ?>" onMouseOver="highlightbox(<?=$oneFace->x1 ?>,<?=$oneFace->y1 ?>,<?=$oneFace->x2 ?>,<?=$oneFace->y2 ?>,'<?=html::clean($oneTag->name); ?>', '<?=html::clean($oneFace->description); ?>', '<?=url::site("tags/$oneFace->tag_id") ?>')" />
|
||||
<area shape="rect" coords="<?=$oneFace->x1 ?>,<?=$oneFace->y1 ?>,<?=$oneFace->x2 ?>,<?=$oneFace->y2 ?>" href="<?=$oneTag->url() ?>" title="<?=html::clean($oneTag->name); ?>" alt="<?=$oneTag->name; ?>" onMouseOver="highlightbox(<?=$oneFace->x1 ?>,<?=$oneFace->y1 ?>,<?=$oneFace->x2 ?>,<?=$oneFace->y2 ?>,'<?=html::clean($oneTag->name); ?>', '<?=html::clean($oneFace->description); ?>', '<?=$oneTag->url() ?>')" />
|
||||
<? } ?>
|
||||
|
||||
<?
|
||||
|
|
|
@ -161,4 +161,17 @@ class user_homes_event_Core {
|
|||
}
|
||||
return;
|
||||
}
|
||||
|
||||
static function show_user_profile($data) {
|
||||
$home = ORM::factory("user_home")->where("id", "=", $data->user->id)->find();
|
||||
|
||||
if ($home->loaded()) {
|
||||
$view = new View("user_profile_home.html");
|
||||
$item = ORM::factory("item")->where("id", "=", $home->home)->find();
|
||||
if ($item->loaded()) {
|
||||
$view->item = $item;
|
||||
$data->content[] = (object)array("title" => t("Home album"), "view" => $view);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
10
modules/user_homes/views/user_profile_home.html.php
Normal file
10
modules/user_homes/views/user_profile_home.html.php
Normal file
|
@ -0,0 +1,10 @@
|
|||
<?php defined("SYSPATH") or die("No direct script access.") ?>
|
||||
<div id="g-user-home-detail">
|
||||
<ul>
|
||||
<li id="g-user_home-<?= $item->id ?>">
|
||||
<a href="<?= $item->url() ?>">
|
||||
<?= html::purify($item->title) ?>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
Reference in New Issue
Block a user