--- /dev/null
+<?php
+
+OCP\JSON::checkAppEnabled('files_sharing');
+OCP\JSON::checkAdminUser();
+if ($_POST['allowSharingWithEveryone'] == true) {
+ OCP\Config::setAppValue('files_sharing', 'allowSharingWithEveryone', 'yes');
+} else {
+ OCP\Config::setAppValue('files_sharing', 'allowSharingWithEveryone', 'no');
+}
\ No newline at end of file
$users = array();
$groups = array();
$self = OCP\USER::getUser();
-$userGroups = OC_Group::getUserGroups($self);
$users[] = "<optgroup label='Users'>";
$groups[] = "<optgroup label='Groups'>";
-foreach ($userGroups as $group) {
- $groupUsers = OC_Group::usersInGroup($group);
- $userCount = 0;
- foreach ($groupUsers as $user) {
- if ($user != $self) {
+if(OCP\Config::getAppValue('files_sharing', 'allowSharingWithEveryone', 'no') == 'yes') {
+ $allGroups = OC_Group::getGroups();
+ foreach($allGroups as $group) {
+ $groups[] = "<option value='".$group."(group)'>".$group." (group) </option>";
+ }
+ $allUsers = OC_User::getUsers();
+ foreach($allUsers as $user) {
+ if($user != $self) {
$users[] = "<option value='".$user."'>".$user."</option>";
- $userCount++;
- }
+ }
}
- // Don't include the group if only the current user is a member of it
- if ($userCount > 0) {
- $groups[] = "<option value='".$group."(group)'>".$group." (group) </option>";
+} else {
+ $userGroups = OC_Group::getUserGroups($self);
+ foreach ($userGroups as $group) {
+ $groupUsers = OC_Group::usersInGroup($group);
+ $userCount = 0;
+ foreach ($groupUsers as $user) {
+ if ($user != $self) {
+ $users[] = "<option value='".$user."'>".$user."</option>";
+ $userCount++;
+ }
+ }
+ // Don't include the group if only the current user is a member of it
+ if ($userCount > 0) {
+ $groups[] = "<option value='".$group."(group)'>".$group." (group) </option>";
+ }
}
+ $users = array_unique($users);
}
-$users = array_unique($users);
$users[] = "</optgroup>";
$groups[] = "</optgroup>";
$users = array_merge($users, $groups);
}
$.post(OC.filePath('files_sharing','ajax','toggleresharing.php'), 'resharing='+checked);
});
+ $('#allowSharingWithEveryone').bind('change', function() {
+ var checked = 1;
+ if (!this.checked) {
+ checked = 0;
+ }
+ $.post(OC.filePath('files_sharing','ajax','togglesharewitheveryone.php'), 'allowSharingWithEveryone='+checked);
+ });
});
\ No newline at end of file
*/
/**
- * This class manages shared items within the database.
+ * This class manages shared items within the database.
*/
class OC_Share {
const PUBLICLINK = "public";
private $token;
-
+
/**
* Share an item, adds an entry into the database
* @param $source The source location of the item
// Remove the owner from the list of users in the group
$uid_shared_with = array_diff($uid_shared_with, array($uid_owner));
} else if (OCP\User::userExists($uid_shared_with)) {
- $userGroups = OC_Group::getUserGroups($uid_owner);
- // Check if the user is in one of the owner's groups
- foreach ($userGroups as $group) {
- if ($inGroup = OC_Group::inGroup($uid_shared_with, $group)) {
- $gid = null;
- $uid_shared_with = array($uid_shared_with);
- break;
+ if(OCP\Config::getAppValue('files_sharing', 'allowSharingWithEveryone', 'no') == 'yes') {
+ $gid = null;
+ $uid_shared_with = array($uid_shared_with);
+ } else {
+ $userGroups = OC_Group::getUserGroups($uid_owner);
+ // Check if the user is in one of the owner's groups
+ foreach ($userGroups as $group) {
+ if ($inGroup = OC_Group::inGroup($uid_shared_with, $group)) {
+ $gid = null;
+ $uid_shared_with = array($uid_shared_with);
+ break;
+ }
+ }
+ if (!$inGroup) {
+ throw new Exception("You can't share with ".$uid_shared_with);
}
- }
- if (!$inGroup) {
- throw new Exception("You can't share with ".$uid_shared_with);
}
} else {
throw new Exception($uid_shared_with." is not a user");
* You must use the pullOutOfFolder() function to change the target location of a file inside a shared folder if the target location differs from the folder
*
* @param $oldTarget The current target location
- * @param $newTarget The new target location
+ * @param $newTarget The new target location
*/
public static function setTarget($oldTarget, $newTarget) {
$oldTarget = self::cleanPath($oldTarget);
OCP\Util::addscript('files_sharing', 'settings');
$tmpl = new OCP\Template('files_sharing', 'settings');
$tmpl->assign('allowResharing', OCP\Config::getAppValue('files_sharing', 'resharing', 'yes'));
+$tmpl->assign('allowSharingWithEveryone', OCP\Config::getAppValue('files_sharing', 'allowSharingWithEveryone', 'no'));
return $tmpl->fetchPage();
?>
\ No newline at end of file
<form id="resharing">
<fieldset class="personalblock">
- <input type="checkbox" name="allowResharing" id="allowResharing" value="1" <?php if ($_['allowResharing'] == 'yes') echo ' checked="checked"'; ?> /> <label for="allowResharing"><?php echo $l->t('Enable Resharing'); ?></label> <br/>
- <em><?php echo $l->t('Allow users to reshare files they don\'t own');?></em>
+ <p><input type="checkbox" name="allowResharing" id="allowResharing" value="1" <?php if ($_['allowResharing'] == 'yes') echo ' checked="checked"'; ?> /> <label for="allowResharing"><?php echo $l->t('Enable Resharing'); ?></label> <br/>
+ <em><?php echo $l->t('Allow users to reshare files they don\'t own');?></em></p>
+ <p><input type="checkbox" name="allowSharingWithEveryone" id="allowSharingWithEveryone" value="1" <?php if ($_['allowSharingWithEveryone'] == 'yes') echo ' checked="checked"'; ?> /> <label for="allowSharingWithEveryone"><?php echo $l->t('Enable sharing with everyone'); ?></label> <br/>
+ <em><?php echo $l->t('Allow users to share files with everyone');?></em></p>
</fieldset>
</form>
\ No newline at end of file