diff --git a/src/configs/Config.php b/src/configs/Config.php index 610735e76..12365fbcb 100755 --- a/src/configs/Config.php +++ b/src/configs/Config.php @@ -979,11 +979,7 @@ nsconddefine('NAME_TRUNCATE_LEN', 7); /** USER STATUS value used for someone who is not in a group but can browse*/ nsdefine('NOT_MEMBER_STATUS', -1); /** USER STATUS value used for a user who can log in and perform activities */ -nsdefine('ACTIVE_STATUS', 5); -/** USER STATUS value used for to identify if logged in user is - running on an older version of Yioop -*/ -nsdefine('ACTIVE_STATUS_USER_V1', 1); +nsdefine('ACTIVE_STATUS', 1); /** * USER STATUS value used for a user whose account is created, but which * still needs to undergo admin or email verification/activation @@ -998,6 +994,10 @@ nsdefine('SUSPENDED_STATUS', 3); * a group but who has not yet accepted */ nsdefine('INVITED_STATUS', 4); +/** + * + */ +nsdefine('PERSONAL_GROUP_PREFIX', 'Personal$'); /** * Group registration type that only allows people to join a group by * invitation diff --git a/src/controllers/RegisterController.php b/src/controllers/RegisterController.php index df45c787a..58401a113 100755 --- a/src/controllers/RegisterController.php +++ b/src/controllers/RegisterController.php @@ -307,83 +307,15 @@ class RegisterController extends Controller implements CrawlConstants break; } $user = $user_model->getUser($data['USER']); - $group_name_id = 'Chats$'.$user['USER_NAME'].'$'.$user['USER_ID']; - $group_model = $this->model("group"); - if ($user['USER_ID'] == C\PUBLIC_USER_ID) { - return $this->redirectWithMessage( - tl('social_component_public_cant_create')); - } else { - $group_fields = [ - "member_access" => ["ACCESS_CODES", C\ACTIVE_STATUS], - "register" => ["REGISTER_CODES", C\NO_JOIN], - "vote_access" => ["VOTING_CODES", - C\NON_VOTING_GROUP], - "post_lifetime" => ["POST_LIFETIMES", C\FOREVER], - "encryption" => ["ENCRYPTION_CODES", 0] - ]; - foreach ($group_fields as $field => $info) { - if (!isset($_REQUEST[$field]) || - !in_array($_REQUEST[$field], - array_keys($data[$info[0]]))) { - $_REQUEST[$field] = $info[1]; - } - } - $group_model->addGroup($group_name_id, - $user['USER_ID'], $_REQUEST['register'], - $_REQUEST['member_access'], - $_REQUEST['vote_access'], - $_REQUEST['post_lifetime'], - $_REQUEST['encryption']); - //one exception to setting $group_id - $gid = $group_model->getGroupId($group_name_id); - $group_model->addUserGroup($user['USER_ID'], $gid); - } - $data['NUM_SHOWN'] = 5; - $data['NUM_GROUPS'] = $group_model->countUserGroups($user['USER_ID']); - - $group_ids = $this->model("impression")->recent($user['USER_ID'], - C\GROUP_IMPRESSION, $data['NUM_SHOWN']); - $num_shown = count($group_ids); - if ($num_shown < $data['NUM_GROUPS'] && $num_shown < - $data['NUM_SHOWN']) { - $groups = $group_model->getUserGroups($user['USER_ID'], "", 0,""); - foreach ($groups as $group) { - if (!in_array($group['GROUP_ID'], $group_ids)) { - $group_ids[] = $group['GROUP_ID']; - } - if (count($group_ids) >= $data['NUM_SHOWN']) { - break; - } - } - } - $num_shown = count($group_ids); - $data['GROUPS'] = []; - $i = 0; - foreach ($group_ids as $group_id) { - $tmp_group = $group_model->getGroupById($group_id, $user['USER_ID']); - if (!$tmp_group) { - continue; - } - $data['GROUPS'][$i] = $tmp_group; - $item = $group_model->getMostRecentGroupPost($group_id); - $data['GROUPS'][$i]['NUM_POSTS'] = - $group_model->getGroupPostCount($group_id); - $data['GROUPS'][$i]['NUM_THREADS'] = - $group_model->getGroupThreadCount($group_id); - $data['GROUPS'][$i]['NUM_PAGES'] = - $group_model->getGroupPageCount($group_id); - if (isset($item['TITLE'])) { - $data['GROUPS'][$i]["ITEM_TITLE"] = $item['TITLE']; - $data['GROUPS'][$i]["THREAD_ID"] = $item['PARENT_ID']; - } else { - $data['GROUPS'][$i]["ITEM_TITLE"] = - tl('accountaccess_component_no_posts_yet'); - $data['GROUPS'][$i]["THREAD_ID"] = -1; - } - $i++; - } if (!empty($user['USER_ID'])) { $user_model->setUserSession($user['USER_ID'], $_SESSION); + $personal_group_name = C\PERSONAL_GROUP_PREFIX . + $user['USER_ID']; + if ($group_model->getGroupId($personal_group_name) < 0){ + $group_model->addGroup($personal_group_name, + $user_id, C\NO_JOIN, C\ACTIVE_STATUS, + C\NON_VOTING_GROUP, C\FOREVER, 0); + } } unset($_SESSION['RECOVERY_ANSWERS']); unset($_SESSION['RECOVERY']); @@ -1245,4 +1177,4 @@ class RegisterController extends Controller implements CrawlConstants } return false; } -} \ No newline at end of file +} diff --git a/src/controllers/components/AccountaccessComponent.php b/src/controllers/components/AccountaccessComponent.php index 6b38f4339..b0fb67e4e 100644 --- a/src/controllers/components/AccountaccessComponent.php +++ b/src/controllers/components/AccountaccessComponent.php @@ -158,33 +158,11 @@ class AccountaccessComponent extends Component } $data['USERNAME'] = $username; $data['NUM_SHOWN'] = 5; - if ($data['USER']['STATUS'] == C\ACTIVE_STATUS_USER_V1) { - $data['USER_NAMES'][$username] = $username; - $username = strtolower($username); - $group_name_id = 'Chats$'.$username.'$'.$user_id; - $group_fields = [ - "member_access" => ["ACCESS_CODES", C\ACTIVE_STATUS], - "register" => ["REGISTER_CODES", C\NO_JOIN], - "vote_access" => ["VOTING_CODES", - C\NON_VOTING_GROUP], - "post_lifetime" => ["POST_LIFETIMES", C\FOREVER], - "encryption" => ["ENCRYPTION_CODES", 0] - ]; - foreach ($group_fields as $field => $info) { - if (!isset($_REQUEST[$field]) || - !in_array($_REQUEST[$field], - array_keys($data[$info[0]]))) { - $_REQUEST[$field] = $info[1]; - } - } - $group_model->addGroup($group_name_id, - $user_id, $_REQUEST['register'], - $_REQUEST['member_access'], - $_REQUEST['vote_access'], - $_REQUEST['post_lifetime'], - $_REQUEST['encryption']); - $group_id = $group_model->getGroupId($group_name_id); - $user_model->updateUserStatus($user_id, C\ACTIVE_STATUS); + $personal_group_name = C\PERSONAL_GROUP_PREFIX . $user_id; + if ($personal_group_id = + $group_model->getGroupId($personal_group_name) < 0) { + $group_model->addGroup($personal_group_name, $user_id, C\NO_JOIN, + C\ACTIVE_STATUS, C\NON_VOTING_GROUP, C\FOREVER, 0); } $data['NUM_GROUPS'] = $group_model->countUserGroups($user_id); $group_ids = $parent->model("impression")->recent($user_id, @@ -192,7 +170,7 @@ class AccountaccessComponent extends Component $num_shown = count($group_ids); if ($num_shown < $data['NUM_GROUPS'] && $num_shown < $data['NUM_SHOWN']) { - $groups = $group_model->getUserGroups($user_id, "", 0, + $groups = $group_model->getUserGroups($user_id, "", [], 0, $data['NUM_SHOWN']); foreach ($groups as $group) { if (!in_array($group['GROUP_ID'], $group_ids)) { @@ -477,7 +455,6 @@ class AccountaccessComponent extends Component $_REQUEST['status']])) { $_REQUEST['status'] = C\INACTIVE_STATUS; } else { - $norm_password = ""; $norm_password = substr($parent->clean($_REQUEST['password'], "string"), 0, C\LONG_NAME_LEN); @@ -493,39 +470,12 @@ class AccountaccessComponent extends Component $_REQUEST['status'] ); $data['USER_NAMES'][$username] = $username; - $username = strtolower($username); - $group_name_id = 'Chats$'.$username.'$'.$user_id; - if ($user_id == C\PUBLIC_USER_ID) { - return $parent->redirectWithMessage( - tl('social_component_public_cant_create')); - } else if ($group_model-> - getGroupId($group_name_id) > 0) { - return $parent->redirectWithMessage( - tl('social_component_groupname_exists')); - } else { - $group_fields = [ - "member_access" => ["ACCESS_CODES", - C\ACTIVE_STATUS], - "register" => ["REGISTER_CODES", C\NO_JOIN], - "vote_access" => ["VOTING_CODES", - C\NON_VOTING_GROUP], - "post_lifetime" => ["POST_LIFETIMES", C\FOREVER], - "encryption" => ["ENCRYPTION_CODES", 0] - ]; - foreach ($group_fields as $field => $info) { - if (!isset($_REQUEST[$field]) || - !in_array($_REQUEST[$field], - array_keys($data[$info[0]]))) { - $_REQUEST[$field] = $info[1]; - } - } - $group_model->addGroup($group_name_id, - $user_id, $_REQUEST['register'], - $_REQUEST['member_access'], - $_REQUEST['vote_access'], - $_REQUEST['post_lifetime'], - $_REQUEST['encryption']); - $group_id = $group_model->getGroupId($group_name_id); + $personal_group_name = C\PERSONAL_GROUP_PREFIX . + $user_id; + if ($group_model->getGroupId($personal_group_name) < 0){ + $group_model->addGroup($personal_group_name, + $user_id, C\NO_JOIN, C\ACTIVE_STATUS, + C\NON_VOTING_GROUP, C\FOREVER, 0); } return $parent->redirectWithMessage( tl('accountaccess_component_user_added'), diff --git a/src/data/public_default.db b/src/data/public_default.db index f96321696..9a9ef3b6e 100644 Binary files a/src/data/public_default.db and b/src/data/public_default.db differ diff --git a/src/models/GroupModel.php b/src/models/GroupModel.php index 80ebc6738..f55971026 100644 --- a/src/models/GroupModel.php +++ b/src/models/GroupModel.php @@ -574,19 +574,12 @@ class GroupModel extends Model implements MediaConstants } } } - if ($limit == "") { - $sql = "SELECT UG.GROUP_ID AS GROUP_ID, UG.USER_ID AS USER_ID," . - " G.GROUP_NAME AS GROUP_NAME, UG.STATUS AS STATUS ". - " FROM USER_GROUP UG, GROUPS G" . - " WHERE USER_ID = ? AND UG.GROUP_ID = G.GROUP_ID $like "; - } else { - $limit = $db->limitOffset($limit, $num); - $sql = "SELECT UG.GROUP_ID AS GROUP_ID, UG.USER_ID AS USER_ID," . - " G.GROUP_NAME AS GROUP_NAME, UG.STATUS AS STATUS ". - " FROM USER_GROUP UG, GROUPS G" . - " WHERE USER_ID = ? AND UG.GROUP_ID = G.GROUP_ID $like ". - " $order_by $limit"; - } + $limit = $db->limitOffset($limit, $num); + $sql = "SELECT UG.GROUP_ID AS GROUP_ID, UG.USER_ID AS USER_ID," . + " G.GROUP_NAME AS GROUP_NAME, UG.STATUS AS STATUS ". + " FROM USER_GROUP UG, GROUPS G" . + " WHERE USER_ID = ? AND UG.GROUP_ID = G.GROUP_ID $like ". + " $order_by $limit"; $result = $db->execute($sql, $param_array); $groups = []; while ($group = $db->fetchArray($result)) { @@ -2736,7 +2729,7 @@ EOD; return $sub_out; } if (is_array($sub_out[1])) { - for ($i = 0 ; $i < count($sub_out[1]); $i++) { + for ($i = s0; $i < count($sub_out[1]); $i++) { array_push($out[1], $sub_out[1][$i]); } } else { @@ -3256,7 +3249,7 @@ EOD; $file_size = strlen($data); $vcs->headPutContents("$folder/$file_name", $data); } - $this->makeThumbStripExif ($file_name, $folder, $thumb_folder, + $this->makeThumbStripExif($file_name, $folder, $thumb_folder, $mime_type); if (C\nsdefined('FFMPEG') && in_array($mime_type, [ 'video/mp4', 'video/webm', 'video/ogg', 'video/avi', @@ -3570,7 +3563,7 @@ EOD; } else if ($thumb_folder && !$resource['is_dir'] && time() < $time + C\PAGE_TIMEOUT/2) { $resource['has_thumb'] = - $this->makeThumbStripExif ($name, $folder, $thumb_folder); + $this->makeThumbStripExif($name, $folder, $thumb_folder); } $resources[] = $resource; } diff --git a/src/views/elements/AdminmenuElement.php b/src/views/elements/AdminmenuElement.php index 71f654026..480767c65 100644 --- a/src/views/elements/AdminmenuElement.php +++ b/src/views/elements/AdminmenuElement.php @@ -52,7 +52,6 @@ class AdminmenuElement extends Element */ public function render($data) { - $data = $this->editChatGroupName($data); $logged_in = !empty($data["ADMIN"]); $is_submenu = false; $admin_prefix = ""; diff --git a/src/views/elements/Element.php b/src/views/elements/Element.php index 25f728e5d..daab30146 100755 --- a/src/views/elements/Element.php +++ b/src/views/elements/Element.php @@ -116,7 +116,7 @@ abstract class Element ?> <div id="settings-toggle-icon"> <div class='top'>[<?=$user_name ?>] - </div><div class='bottom' role="img" + </div><div class='bottom' role="img" aria-label="<?= tl('element_settings_toggle') ?>">≡</div> </div> @@ -126,79 +126,4 @@ abstract class Element tl('element_settings_toggle').'">≡</div>'); }?></div></div><?php } - /** - * Used to rewrite the user specific private chat group name into - * a localized version of the word "Chat" - * - * @param array $data contains all external data from the controller - * that should be used in drawing the view - */ - public function editChatGroupName($data) - { - if (!empty($data['GROUPS'])) { - foreach ($data['GROUPS'] as $key => $group_value) { - if (strpos($group_value['GROUP_NAME'], "Chats\$") !== false) { - $data['GROUPS'][$key]['GROUP_NAME'] = - tl('element_chat_name'); - } - } - } - if (!empty($data['PAGES'])) { - // handle group feed items for chat - foreach ($data['PAGES'] as $key => $page_value) { - if (!empty($data['PAGES'][$key][CrawlConstants::SOURCE_NAME]) && - strpos($data['PAGES'][$key][CrawlConstants::SOURCE_NAME], - "Chats\$") !== false) { - if (!empty($data['GROUP_NAME'])) { - $data['GROUP_NAME'] = tl('element_chat_name'); - } - $data['PAGES'][$key][CrawlConstants::SOURCE_NAME] = - tl('element_chat_name'); - $title = $data['PAGES'][$key][CrawlConstants::TITLE]; - $chat_pos = strpos($title, tl('element_chat_name')); - $str1 = substr($title, $chat_pos); - $str1 = substr($title, 0, -strlen($str1)); - $data['PAGES'][$key][CrawlConstants::TITLE] = - $str1 . tl('element_chat_name'); - $description = $data['PAGES'][$key][ - CrawlConstants::DESCRIPTION]; - $chat_pos = strpos($description, tl('element_chat_name')); - $str1 = substr($description, $chat_pos); - $str1 = substr($description, 0, -strlen($str1)); - $data['PAGES'][$key][CrawlConstants::DESCRIPTION] = - trim($str1) . " " . tl('element_chat_name'); - break; - } - } - } - if (!empty($data['GROUP']['GROUP_NAME']) && - strpos($data['GROUP']['GROUP_NAME'], "Chats\$") !== false) { - $data['GROUP']['GROUP_NAME'] = tl('element_chat_name'); - } - if (!empty($data['CURRENT_GROUP']['name']) && strpos( - $data['CURRENT_GROUP']['name'], "Chats\$") !== false) { - $data['CURRENT_GROUP']['name'] = tl('element_chat_name'); - } - return $data; - } - /** - * Used to rewrite the user specific private chat group name into - * a localized version of the word "Chat" for the wiki page side bar - * - * @param string $group_name name of the group portion of the name - * mangled user specific chat group name - * @param array $options array of options that might have user specific - * chat group name in the sidebar menu - */ - public function editOptions($group_name, $options) - { - foreach ($options as $key => $option_value) { - if (strpos($option_value, "Chats") !== false) { - $options[$key] = tl('element_chat_name') . " " . - substr($option_value, - strlen($group_name) - strlen($option_value)); - } - } - return $options; - } } diff --git a/src/views/elements/GroupbarElement.php b/src/views/elements/GroupbarElement.php index 69c8f41e3..e76d028ce 100644 --- a/src/views/elements/GroupbarElement.php +++ b/src/views/elements/GroupbarElement.php @@ -49,7 +49,6 @@ class GroupbarElement extends Element */ public function render($data) { - $data = $this->editChatGroupName($data); if (isset($data["HEAD"]['page_type']) && $data["HEAD"]['page_type'] == 'presentation' && $data['MODE'] == 'read' ) { diff --git a/src/views/elements/GroupfeedElement.php b/src/views/elements/GroupfeedElement.php index 9fabcc816..f24237f08 100644 --- a/src/views/elements/GroupfeedElement.php +++ b/src/views/elements/GroupfeedElement.php @@ -51,7 +51,6 @@ class GroupfeedElement extends Element implements CrawlConstants */ public function render($data) { - $data = $this->editChatGroupName($data); $logged_in = !empty($data["ADMIN"]); $is_status = isset($data['STATUS']); $is_api = !empty($data['API']); @@ -204,7 +203,6 @@ class GroupfeedElement extends Element implements CrawlConstants public function renderUngroupedView($logged_in, $base_query, $paging_query, &$data) { - $data = $this->editChatGroupName($data); $is_api = !empty($data['API']); $is_status = !empty($data['STATUS']); $open_in_tabs = $data['OPEN_IN_TABS']; diff --git a/src/views/elements/GroupmenuElement.php b/src/views/elements/GroupmenuElement.php index 61b87dbcc..c6af2aef2 100644 --- a/src/views/elements/GroupmenuElement.php +++ b/src/views/elements/GroupmenuElement.php @@ -52,7 +52,6 @@ class GroupmenuElement extends Element implements CrawlConstants */ public function render($data) { - $data = $this->editChatGroupName($data); $logged_in = !empty($data["ADMIN"]); $is_wiki = isset($data['ELEMENT']) && $data['ELEMENT'] == 'wiki'; $token_string = ($logged_in && isset($data[C\CSRF_TOKEN])) ? diff --git a/src/views/elements/ManagegroupsElement.php b/src/views/elements/ManagegroupsElement.php index e14dfd5e2..b67c16f05 100755 --- a/src/views/elements/ManagegroupsElement.php +++ b/src/views/elements/ManagegroupsElement.php @@ -51,7 +51,6 @@ class ManagegroupsElement extends Element */ public function render($data) { - $data = $this->editChatGroupName($data); $admin_url = htmlentities(B\controllerUrl("admin", true)); $token_string = C\CSRF_TOKEN . "=" . $data[C\CSRF_TOKEN]; ?> @@ -200,13 +199,9 @@ class ManagegroupsElement extends Element } } if ($col_name == "STATUS") { - $group_status = $group[$col_name]; - $group_status = ($group_status == - C\ACTIVE_STATUS_USER_V1) ? C\ACTIVE_STATUS : - $group_status; $group_column = - $data['MEMBERSHIP_CODES'][$group_status]; - if ($group_status == C\ACTIVE_STATUS) { + $data['MEMBERSHIP_CODES'][$group[$col_name]]; + if ($group['STATUS'] == C\ACTIVE_STATUS) { continue; } } @@ -382,7 +377,6 @@ class ManagegroupsElement extends Element */ public function renderGroupsForm($data) { - $data = $this->editChatGroupName($data); $admin_url = htmlentities(B\controllerUrl('admin', true)); $base_url = $admin_url . C\CSRF_TOKEN . "=" . $data[C\CSRF_TOKEN]. "&a=manageGroups&visible_users=" . $data['visible_users']; diff --git a/src/views/elements/WikiElement.php b/src/views/elements/WikiElement.php index ce03f4d5f..1975c3342 100644 --- a/src/views/elements/WikiElement.php +++ b/src/views/elements/WikiElement.php @@ -1420,7 +1420,6 @@ class WikiElement extends Element implements CrawlConstants */ public function renderPages($data, $can_edit, $logged_in) { - $data = $this->editChatGroupName($data); $token_string = ($logged_in) ? C\CSRF_TOKEN ."=". $data[C\CSRF_TOKEN] : ""; $group_id = $data["GROUP"]["GROUP_ID"];