/** * View post menu * * @param string $hook Name of hook * @param string $type Hook type * @param string $return mixed data * @param array $params Arrays or Objects * * @return mixed data * @access private */ function ossn_wall_post_menu($hook, $type, $return, $params) { if ($params['post']->poster_guid == ossn_loggedin_user()->guid || $params['post']->owner_guid == ossn_loggedin_user()->guid || ossn_isAdminLoggedin()) { $deleteurl = ossn_site_url("action/wall/post/delete?post={$params['post']->guid}", true); ossn_register_menu_link("delete", ossn_print('ossn:post:delete'), array('class' => 'ossn-wall-post-delete', 'href' => $deleteurl, 'data-guid' => $params['post']->guid), 'wallpost'); } else { ossn_unregister_menu('delete', 'wallpost'); } return ossn_view_menu('wallpost', 'wall/menus/post-controls'); }
/** * Trigger upgrade / Run upgrade * * @return void; * @access private */ function ossn_trigger_upgrades() { if (!ossn_isAdminLoggedin()) { ossn_kill_upgrading(); ossn_error_page(); } $upgrades = ossn_get_process_upgrade_files(); if (!is_array($upgrades) || empty($upgrades)) { ossn_trigger_message(ossn_print('upgrade:not:available'), 'error'); ossn_kill_upgrading(); redirect('administrator'); } foreach ($upgrades as $upgrade) { $file = ossn_route()->upgrade . "upgrades/{$upgrade}"; if (!(include_once $file)) { throw new exception(ossn_print('upgrade:file:load:error')); } } //need to reset cache files if (ossn_site_settings('cache') !== 0) { ossn_trigger_css_cache(); ossn_trigger_js_cache(); } return true; }
/** * Home sidebar initlize the component * * return void */ function html_sidebar() { ossn_add_hook('newsfeed', "sidebar:right", 'html_widget'); ossn_register_com_panel('HtmlSidebar', 'settings'); if (ossn_isAdminLoggedin()) { ossn_register_action('html/sidebar/save', __HTML_SIDEBAR__ . 'actions/save.php'); } }
/** * Initialize Ads Component * * @return void; * @access private */ function ossn_ads() { ossn_register_com_panel('OssnAds', 'settings'); if (ossn_isAdminLoggedin()) { ossn_register_action('ossnads/add', __OSSN_ADS__ . 'actions/add.php'); ossn_register_action('ossnads/edit', __OSSN_ADS__ . 'actions/edit.php'); ossn_register_action('ossnads/delete', __OSSN_ADS__ . 'actions/delete.php'); } ossn_register_page('ossnads', 'ossn_ads_handler'); ossn_extend_view('css/ossn.default', 'css/ads'); ossn_extend_view('css/ossn.admin.default', 'css/ads.admin'); }
/** * Initialize the admin library * * @return void */ function ossn_admin() { ossn_register_admin_sidemenu('admin/sidemenu', 'admin:components', ossn_site_url('administrator/components'), ossn_print('admin:sidemenu:components')); ossn_register_admin_sidemenu('admin/sidemenu', 'admin:install', ossn_site_url('administrator/com_installer'), ossn_print('admin:sidemenu:components')); ossn_register_admin_sidemenu('admin/sidemenu', 'admin:themes', ossn_site_url('administrator/themes'), ossn_print('admin:sidemenu:themes')); ossn_register_admin_sidemenu('admin/sidemenu', 'admin:install', ossn_site_url('administrator/theme_installer'), ossn_print('admin:sidemenu:themes')); ossn_register_admin_sidemenu('admin/sidemenu', 'admin:basic', ossn_site_url('administrator/settings/basic'), ossn_print('admin:sidemenu:settings')); ossn_register_admin_sidemenu('admin/sidemenu', 'admin:cache', ossn_site_url('administrator/cache'), ossn_print('admin:sidemenu:settings')); //ossn_register_admin_sidemenu('admin/sidemenu', 'admin:mode', ossn_site_url('administrator/theme_installer'), ossn_print('admin:sidemenu:settings')); ossn_register_admin_sidemenu('admin/sidemenu', 'admin:users', ossn_site_url('administrator/users'), ossn_print('admin:sidemenu:usermanager')); ossn_register_admin_sidemenu('admin/sidemenu', 'admin:add:user', ossn_site_url('administrator/adduser'), ossn_print('admin:sidemenu:usermanager')); ossn_register_admin_sidemenu('admin/sidemenu', 'admin:users:unvalidated', ossn_site_url('administrator/unvalidated_users'), ossn_print('admin:sidemenu:usermanager')); ossn_register_menu_link('home', 'admin:dashboard', ossn_site_url('administrator'), 'topbar_admin'); ossn_register_menu_link('configure', 'Configure', '#', 'topbar_admin'); ossn_register_menu_link('help', 'admin:help', 'http://community.opensource-socialnetwork.org', 'topbar_admin'); ossn_register_menu_link('support', 'admin:support', 'http://community.opensource-socialnetwork.org', 'topbar_admin'); ossn_register_menu_link('viewsite', 'admin:view:site', ossn_site_url(), 'topbar_admin'); ossn_register_action('admin/login', ossn_route()->actions . 'administrator/login.php'); ossn_register_action('admin/logout', ossn_route()->actions . 'administrator/logout.php'); if (ossn_isAdminLoggedin()) { ossn_register_site_settings_page('account', 'pages/account'); ossn_register_action('component/enable', ossn_route()->actions . 'administrator/component/enable.php'); ossn_register_action('component/disable', ossn_route()->actions . 'administrator/component/disable.php'); ossn_register_action('component/delete', ossn_route()->actions . 'administrator/component/delete.php'); ossn_register_action('theme/enable', ossn_route()->actions . 'administrator/theme/enable.php'); ossn_register_action('theme/delete', ossn_route()->actions . 'administrator/theme/delete.php'); ossn_register_action('admin/add/user', ossn_route()->actions . 'administrator/user/add.php'); ossn_register_action('admin/edit/user', ossn_route()->actions . 'administrator/user/edit.php'); ossn_register_action('admin/delete/user', ossn_route()->actions . 'administrator/user/delete.php'); ossn_register_action('admin/validate/user', ossn_route()->actions . 'administrator/user/validate.php'); ossn_register_action('admin/com_install', ossn_route()->actions . 'administrator/component/com_install.php'); ossn_register_action('admin/theme_install', ossn_route()->actions . 'administrator/theme/theme_install.php'); ossn_register_action('admin/settings/save/basic', ossn_route()->actions . 'administrator/settings/save/basic.php'); ossn_register_action('admin/cache/create', ossn_route()->actions . 'administrator/cache/create.php'); ossn_register_action('admin/cache/flush', ossn_route()->actions . 'administrator/cache/flush.php'); } /* * Register login and backend pages */ if (ossn_isAdminLoggedin()) { ossn_register_page('administrator', 'ossn_administrator_pagehandler'); ossn_register_site_settings_page('basic', 'settings/admin/basic_settings'); ossn_register_menu_item('topbar_dropdown', array('name' => 'administration', 'text' => ossn_print('admin'), 'href' => ossn_site_url('administrator'))); } else { ossn_register_page('administrator', 'ossn_administrator_login_pagehandler'); } }
<?php /** * OpenSource-SocialNetwork * * @package (Informatikon.com).ossn * @author OSSN Core Team <*****@*****.**> * @copyright 2014 iNFORMATIKON TECHNOLOGIES * @license General Public Licence http://opensource-socialnetwork.com/licence * @link http://www.opensource-socialnetwork.com/licence */ $photoid = input('id'); $delete = ossn_photos(); $delete->photoid = $photoid; $photo = $delete->GetPhoto($delete->photoid); if ($photo->owner_guid == ossn_loggedin_user()->guid || ossn_isAdminLoggedin()) { if ($delete->deleteProfilePhoto()) { ossn_trigger_message(ossn_print('photo:deleted:success'), 'success'); redirect(); } else { ossn_trigger_message(ossn_print('photo:delete:error'), 'error'); redirect(); } } else { ossn_trigger_message(ossn_print('photo:delete:error'), 'error'); redirect(); }
/** * Delete comment menu * * @return voud; * @access private */ function ossn_comment_menu($name, $type, $params) { ossn_unregister_menu('delete', 'comments'); $OssnComment = new OssnComments(); if (is_object($params)) { $params = get_object_vars($params); } $comment = $OssnComment->getComment($params['id']); if ($comment->type == 'comments:post') { if (com_is_active('OssnWall')) { $ossnwall = new OssnWall(); $post = $ossnwall->GetPost($comment->subject_guid); if (ossn_loggedin_user()->guid == $post->owner_guid) { ossn_register_menu_link('delete', ossn_print('comment:delete'), array('href' => ossn_site_url("action/delete/comment?comment={$params['id']}"), 'class' => 'ossn-delete-comment'), 'comments'); } } } $user = ossn_loggedin_user(); if (ossn_isLoggedin()) { if ($user->guid == $params['owner_guid'] || ossn_isAdminLoggedin()) { ossn_register_menu_link('delete', ossn_print('comment:delete'), array('href' => ossn_site_url("action/delete/comment?comment={$params['id']}"), 'class' => 'ossn-delete-comment'), 'comments'); } } }
/** * Show a leftside menu on album photo view * * @return mix data * @access private; */ function ossn_album_photo_menu($hook, $type, $return, $params) { $album = ossn_albums()->getAlbum($params->owner_guid); if ($album->album->owner_guid == ossn_loggedin_user()->guid || ossn_isAdminLoggedin()) { return ossn_view('components/OssnPhotos/views/albumphoto/menu', $params); } }
*/ $ossnwall = new OssnWall(); $id = input('post'); $post = $ossnwall->GetPost($id); if ($post->type == 'user' && !ossn_isAdminLoggedin()) { if ($post->poster_guid !== ossn_loggedin_user()->guid && $post->owner_guid !== ossn_loggedin_user()->guid) { if (!ossn_is_xhr()) { ossn_trigger_message(ossn_print('post:delete:fail'), 'error'); redirect(REF); } else { echo 0; exit; } } } if ($post->type == 'group' && !ossn_isAdminLoggedin()) { $group = new OssnGroup(); $group = $group->getGroup($post->owner_guid); //lastchange group admins are unable to delete member posting on group wall #171 // change or operator to and if ($post->poster_guid !== ossn_loggedin_user()->guid && ossn_loggedin_user()->guid !== $group->owner_guid) { if (!ossn_is_xhr()) { ossn_trigger_message(ossn_print('post:delete:fail'), 'error'); redirect(REF); } else { echo 0; exit; } } } if ($ossnwall->deletePost($id)) {
<?php /** * Open Source Social Network * * @packageOpen Source Social Network * @author Open Social Website Core Team <*****@*****.**> * @copyright 2014 iNFORMATIKON TECHNOLOGIES * @license General Public Licence http://www.opensource-socialnetwork.org/licence * @link http://www.opensource-socialnetwork.org/licence */ $guid = input('guid'); $group = ossn_get_group_by_guid($guid); if ($group->owner_guid !== ossn_loggedin_user()->guid) { ossn_trigger_message(ossn_print('group:delete:fail'), 'error'); redirect(REF); } if ($group->owner_guid !== ossn_loggedin_user()->guid || ossn_isAdminLoggedin()) { if ($group->deleteGroup($group->guid)) { ossn_trigger_message(ossn_print('group:deleted')); redirect(); } else { ossn_trigger_message(ossn_print('group:delete:fail'), 'error'); redirect(REF); } } else { ossn_trigger_message(ossn_print('group:delete:fail'), 'error'); redirect(REF); }
<?php /** * OpenSource-SocialNetwork * * @package (Informatikon.com).ossn * @author OSSN Core Team <*****@*****.**> * @copyright 2014 iNFORMATIKON TECHNOLOGIES * @license General Public Licence http://opensource-socialnetwork.com/licence * @link http://www.opensource-socialnetwork.com/licence */ $comment = input('comment'); $delete = new OssnComments(); if ($delete->GetComment($comment)->owner_guid == ossn_loggedin_user()->guid || ossn_isAdminLoggedin()) { if ($delete->deleteComment($comment)) { if (ossn_is_xhr()) { echo 1; } else { ossn_trigger_message(ossn_print('comment:deleted'), 'success'); redirect(REF); } } else { if (ossn_is_xhr()) { echo 0; } else { ossn_trigger_message(ossn_print('comment:delete:error'), 'error'); redirect(REF); } } } else { if (ossn_is_xhr()) {
$delete = new OssnComments(); $comment = $delete->GetComment($comment); //group admins must be able to delete ANY comment in their own group #170 //first get wall post then get group and check if loggedin user is group owner if ($comment->type == 'comments:post') { $post = ossn_get_object($comment->subject_guid); if ($post && $post->type == 'group') { $group = ossn_get_group_by_guid($post->owner_guid); } } $user = ossn_loggedin_user(); if ($comment->type == 'comments:entity') { $entity = ossn_get_entity($comment->subject_guid); } //Post owner can not delete others comments #607 if ($comment->owner_guid == $user->guid || $post->type == 'user' && $user->guid == $post->owner_guid || $group->owner_guid == $user->guid || $entity->owner_guid == $user->guid || ossn_isAdminLoggedin()) { if ($delete->deleteComment($comment->getID())) { if (ossn_is_xhr()) { echo 1; } else { ossn_trigger_message(ossn_print('comment:deleted'), 'success'); redirect(REF); } } else { if (ossn_is_xhr()) { echo 0; } else { ossn_trigger_message(ossn_print('comment:delete:error'), 'error'); redirect(REF); } }
/** * Can change * Check if user can change the requested item or not * * @param object $user User * @return boolean */ public function canChange($user = '') { if (empty($user)) { $user = ossn_loggedin_user(); } $allowed = false; if (isset($user->guid) && $user instanceof OssnUser) { if (isset($this->owner_guid) && $this->type == 'user' && $this->owner_guid == $user->guid || ossn_isAdminLoggedin()) { $allowed = true; } } return ossn_call_hook('user', 'can:change', $this, $allowed); }
<?php /** * Open Source Social Network * * @package (Informatikon.com).ossn * @author OSSN Core Team <*****@*****.**> * @copyright 2014 iNFORMATIKON TECHNOLOGIES * @license General Public Licence http://www.opensource-socialnetwork.org/licence * @link http://www.opensource-socialnetwork.org/licence */ $photoid = input('id'); $delete = ossn_photos(); $delete->photoid = $photoid; $photo = $delete->GetPhoto($delete->photoid); $owner = ossn_albums(); $owner = $owner->GetAlbum($photo->owner_guid); if ($owner->album->owner_guid == ossn_loggedin_user()->guid || ossn_isAdminLoggedin()) { if ($delete->deleteAlbumPhoto()) { ossn_trigger_message(ossn_print('photo:deleted:success'), 'success'); redirect("album/view/{$owner->album->guid}"); } else { ossn_trigger_message(ossn_print('photo:delete:error'), 'error'); redirect(REF); } } else { ossn_trigger_message(ossn_print('photo:delete:error'), 'error'); redirect(REF); }
/** * Delete Album * * @param integer $guid Album Guid * * @return boolean */ public function deleteAlbum($guid) { if (!empty($guid)) { $album = $this->GetAlbum($guid); if ($album->album->owner_guid == ossn_loggedin_user()->guid || ossn_isAdminLoggedin()) { $photos = new OssnPhotos(); foreach ($album->photos as $photo) { $photos->photoid = $photo->guid; $photos->deleteAlbumPhoto(); } if ($album->album->deleteObject()) { return true; } } } return false; }
/** * Delete comment menu * * @return voud; * @access private */ function ossn_comment_menu($name, $type, $params) { $OssnComment = new OssnComments(); if (is_object($params)) { $params = get_object_vars($params); } $comment = $OssnComment->getComment($params['id']); if ($comment->type == 'comments:post') { if (com_is_active('OssnWall')) { $ossnwall = new OssnWall(); $post = $ossnwall->GetPost($comment->subject_guid); //check if type is group if ($post->type == 'group') { $group = ossn_get_group_by_guid($post->owner_guid); } //group admins must be able to delete ANY comment in their own group #170 //just show menu if group owner is loggedin if (ossn_loggedin_user()->guid == $post->owner_guid || ossn_loggedin_user()->guid == $group->owner_guid) { ossn_unregister_menu('delete', 'comments'); ossn_register_menu_item('comments', array('name' => 'delete', 'href' => ossn_site_url("action/delete/comment?comment={$params['id']}", true), 'class' => 'ossn-delete-comment', 'text' => ossn_print('comment:delete'))); } } } $user = ossn_loggedin_user(); if (ossn_isLoggedin()) { if ($comment->type == 'comments:entity') { $entity = ossn_get_entity($comment->subject_guid); } if ($user->guid == $params['owner_guid'] || ossn_isAdminLoggedin() || $comment->type == 'comments:entity' && ($entity->type = 'user' && $user->guid == $entity->owner_guid)) { ossn_unregister_menu('delete', 'comments'); ossn_register_menu_item('comments', array('name' => 'delete', 'href' => ossn_site_url("action/delete/comment?comment={$params['id']}", true), 'class' => 'ossn-delete-comment', 'text' => ossn_print('comment:delete'))); } } }
$posts = $Pagination->getItem(); if ($posts) { foreach ($posts as $post) { $data = json_decode(html_entity_decode($post->description)); $text = ossn_restore_new_lines($data->post, true); $location = ''; if (isset($data->location)) { $location = '- ' . $data->location; } if (!isset($data->friend)) { $data->friend = ''; } if (isset($post->{'file:wallphoto'})) { $image = str_replace('ossnwall/images/', '', $post->{'file:wallphoto'}); } else { $image = ''; } $user = ossn_user_by_guid($post->poster_guid); if ($post->access == OSSN_FRIENDS) { //lastchage: site admins are unable to access member profile threads without friendship #176 if (ossn_user_is_friend(ossn_loggedin_user()->guid, $post->owner_guid) || ossn_loggedin_user()->guid == $post->owner_guid || ossn_isAdminLoggedin()) { echo ossn_plugin_view('wall/templates/activity-item', array('post' => $post, 'friends' => explode(',', $data->friend), 'text' => $text, 'location' => $location, 'user' => $user, 'image' => $image)); } } if ($post->access == OSSN_PUBLIC) { echo ossn_plugin_view('wall/templates/activity-item', array('post' => $post, 'friends' => explode(',', $data->friend), 'text' => $text, 'location' => $location, 'user' => $user, 'image' => $image)); } } } echo $Pagination->pagination(); echo '</div>';
/** * Check if loggedin is friend with item owner or if owner is loggedin user; * * @return bool; */ function ossn_validate_access_friends($owner) { if (ossn_user_is_friend(ossn_loggedin_user()->guid, $owner) || ossn_loggedin_user()->guid == $owner || ossn_isAdminLoggedin()) { return true; } return false; }
<?php /** * Open Source Social Network * * @packageOpen Source Social Network * @author Open Social Website Core Team <*****@*****.**> * @copyright 2014 iNFORMATIKON TECHNOLOGIES * @license General Public Licence http://www.opensource-socialnetwork.org/licence * @link http://www.opensource-socialnetwork.org/licence */ $wall = new OssnWall(); $accesstype = ossn_get_homepage_wall_access(); if ($accesstype == 'public' || ossn_isAdminLoggedin()) { $posts = $wall->GetPosts(); $count = $wall->GetPosts(array('count' => true)); } elseif ($accesstype == 'friends') { $posts = $wall->getFriendsPosts(); } if ($posts) { foreach ($posts as $post) { if (!isset($post->poster_guid)) { $post = ossn_get_object($post->guid); } $data = json_decode(html_entity_decode($post->description)); $text = ossn_restore_new_lines($data->post, true); $location = ''; if (isset($data->location)) { $location = '- ' . $data->location; } if (isset($post->{'file:wallphoto'})) {
/** * Show a leftside menu on profile cover photo vieww * * @return mix data * @access private; */ function ossn_album_cover_photo_menu($hook, $type, $return, $params) { if ($params->owner_guid == ossn_loggedin_user()->guid || ossn_isAdminLoggedin()) { return ossn_plugin_view('photos/views/coverphoto/menu', $params); } }
?> <div class="ossn-topbar-dropdown-menu"> <label class="ossn-topbar-dropdown-menu-button"><span class="arrow"></span></label> <ul class="ossn-topbar-dropdown-menu-content"> <li> <a href="<?php echo ossn_site_url("u/" . ossn_loggedin_user()->username . "/edit"); ?> "><?php echo ossn_print('acount:settings'); ?> </a> </li> <?php if (ossn_isAdminLoggedin()) { ?> <li> <a href="<?php echo ossn_site_url('administrator'); ?> "><?php echo ossn_print('admin'); ?> </a> </li> <?php } ?> <li> <?php
$comment = input('comment'); $delete = new OssnComments(); $comment = $delete->GetComment($comment); //group admins must be able to delete ANY comment in their own group #170 //first get wall post then get group and check if loggedin user is group owner if ($comment->type == 'comments:post') { $post = ossn_get_object($comment->subject_guid); if ($post && $post->type == 'group') { $group = ossn_get_group_by_guid($post->owner_guid); } } if ($comment->type == 'comments:entity') { $entity = ossn_get_entity($comment->subject_guid); } //check if comment is based on entity then check entity ownerguid and if logged in user is entity owner delete comment if ($comment->owner_guid == ossn_loggedin_user()->guid || $group->owner_guid == ossn_loggedin_user()->guid || $entity->owner_guid == ossn_loggedin_user()->guid || ossn_isAdminLoggedin()) { if ($delete->deleteComment($comment->getID())) { if (ossn_is_xhr()) { echo 1; } else { ossn_trigger_message(ossn_print('comment:deleted'), 'success'); redirect(REF); } } else { if (ossn_is_xhr()) { echo 0; } else { ossn_trigger_message(ossn_print('comment:delete:error'), 'error'); redirect(REF); } }