X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=class.xorg.auth.php;h=e2290b8424e33fe55a0a035bf2c52492ff6a90d6;hb=HEAD;hp=06def8f8f0ed72073658b6d74a56dc6d5bee8e3f;hpb=7845399c3d95429d0f02240391f2992973f27a6e;p=dotclear.git diff --git a/class.xorg.auth.php b/class.xorg.auth.php index 06def8f..e2290b8 100644 --- a/class.xorg.auth.php +++ b/class.xorg.auth.php @@ -10,12 +10,12 @@ class xorgAuth extends dcAuth { 'nom' => null, 'grpauth' => null, 'perms' => null); - static public function behavior_coreBlogConstruct(&$blog) { + static public function behavior_coreBlogConstruct($blog) { global $core; $core->auth->sudo(array($core->auth, 'updateUserPerms'), $blog); } - public function __construct(&$core) { + public function __construct($core) { parent::__construct($core); $core->addBehavior('coreBlogConstruct', array('xorgAuth', 'behavior_coreBlogConstruct')); } @@ -38,7 +38,16 @@ class xorgAuth extends dcAuth { $this->user_id = $user; $this->user_admin = ($_SESSION['auth-xorg-perms'] == 'admin'); parent::checkUser($this->user_id); - $core->getUserBlogs(); +// $core->getUserBlogs(); + $this->setCommentCookie(); + } + } + + private function setCommentCookie() { + if (!isset($_COOKIE['comment_info_xorg']) || $_COOKIE['comment_info_xorg'] != $this->user_id) { + $cookie = $this->getInfo('user_displayname') . "\n" . $this->getInfo('user_email') . "\n" . $this->getInfo('user_url'); + setcookie('comment_info_xorg', $this->user_id, time() + 30 * 86400, '/'); + setrawcookie('comment_info', rawurlencode($cookie), time() + 30 * 86400, '/'); } } @@ -54,6 +63,7 @@ class xorgAuth extends dcAuth { $cur->user_firstname = $_SESSION['auth-xorg-prenom']; $cur->user_displayname = $cur->user_firstname . ' ' . $cur->user_name; $cur->user_email = $_SESSION['auth-xorg'] . '@polytechnique.org'; + $cur->user_url = 'https://www.polytechnique.org/profile/' . $_SESSION['auth-xorg']; $defaults = $core->userDefaults(); $defaults['post_xorg_perms'] = 'public'; $cur->user_options = $defaults; @@ -64,14 +74,14 @@ class xorgAuth extends dcAuth { } } - public function updateUserPerms(&$blog) { + public function updateUserPerms($blog) { global $core; $this->buildFromSession(); if (!isset($_SESSION['auth-xorg'])) { return; } - $type = $blog->settings->get('xorg_blog_type'); - $owner = $blog->settings->get('xorg_blog_owner'); + $type = $blog->settings->xorgauth->get('xorg_blog_type'); + $owner = $blog->settings->xorgauth->get('xorg_blog_owner'); $level = $this->xorg_infos['grpauth']; $rec = $core->getUser($this->user_id); $wasAdmin = $rec->f('user_super'); @@ -85,12 +95,14 @@ class xorgAuth extends dcAuth { $this->killSession(); return; } - if (($type == 'group-admin' || $type == 'group-member') && $level == 'admin') { + if (($type == 'group-admin' || $type == 'group-member' || $type == 'connected') && $level == 'admin') { $perms = array('usage' => true, 'contentadmin' => true, 'admin' => true); } else if ($type == 'group-member' && $level == 'membre') { $perms = array('usage' => true); + } else if ($type == 'connected' && $this->xorg_infos['forlife'] != '') { + $perms = array('usage' => true); } else if ($type == 'user' && $owner == $this->xorg_infos['forlife']) { $perms = array('usage' => true, 'contentadmin' => true, @@ -121,14 +133,14 @@ class xorgAuth extends dcAuth { $path = @$_SERVER['PATH_INFO']; } $_SESSION["auth-x-challenge"] = md5(uniqid(rand(), 1)); - $_SESSION['xorg-group'] = $core->blog->settings->get('xorg_blog_owner'); + $_SESSION['xorg-group'] = $core->blog->settings->xorgauth->get('xorg_blog_owner'); $url = "https://www.polytechnique.org/auth-groupex/utf8"; $url .= "?session=" . session_id(); $url .= "&challenge=" . $_SESSION["auth-x-challenge"]; $url .= "&pass=" . md5($_SESSION["auth-x-challenge"] . XORG_AUTH_KEY); - $type = $core->blog->settings->get('xorg_blog_type'); - if ($type == 'group-member' || $type == 'group-admin') { - $url .= '&group=' . $core->blog->settings->get('xorg_blog_owner'); + $type = $core->blog->settings->xorgauth->get('xorg_blog_type'); + if ($type == 'group-member' || $type == 'group-admin' || $type == 'connected') { + $url .= '&group=' . $core->blog->settings->xorgauth->get('xorg_blog_owner'); } $url .= "&url=" . urlencode($core->blog->url . "auth/XorgReturn?path=" . $path); session_write_close(); @@ -221,16 +233,16 @@ class xorgAuth extends dcAuth { return parent::userID(); } - public function getPermissions() { + public function getPermissions($blog_id) { $this->buildFromSession(); - return parent::getPermissions(); + return parent::getPermissions($blog_id); } public function getInfo($n) { $this->buildFromSession(); if ($n == 'xorg_group_member') { global $core; - if ($core->blog->settings('xorg_blog_owner') != $_SESSION['xorg-group']) { + if ($core->blog->settings->xorgauth->get('xorg_blog_owner') != $_SESSION['xorg-group']) { return false; } $perm = $this->xorg_infos['grpauth'];