Selaa lähdekoodia

Revive the "send email to new users" toggle for the user form

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
tags/v19.0.0beta1
Christoph Wurst 4 vuotta sitten
vanhempi
commit
d47daefe38
No account linked to committer's email address

+ 1
- 1
apps/provisioning_api/lib/Controller/UsersController.php Näytä tiedosto

@@ -335,7 +335,7 @@ class UsersController extends AUserData {
}

// Send new user mail only if a mail is set
if ($email !== '') {
if ($email !== '' && $this->config->getAppValue('core', 'newUser.sendEmail', 'yes') === 'yes') {
$newUser->setEMailAddress($email);
try {
$emailTemplate = $this->newUserMailHelper->generateTemplate($newUser, $generatePasswordResetToken);

+ 1
- 0
apps/settings/appinfo/routes.php Näytä tiedosto

@@ -70,6 +70,7 @@ $application->registerRoutes($this, [
['name' => 'Users#getVerificationCode', 'url' => '/settings/users/{account}/verify', 'verb' => 'GET'],
['name' => 'Users#usersList', 'url' => '/settings/users', 'verb' => 'GET'],
['name' => 'Users#usersListByGroup', 'url' => '/settings/users/{group}', 'verb' => 'GET', 'requirements' => ['group' => '.+']],
['name' => 'Users#setPreference', 'url' => '/settings/users/preferences/{key}', 'verb' => 'POST'],
['name' => 'LogSettings#setLogLevel', 'url' => '/settings/admin/log/level', 'verb' => 'POST'],
['name' => 'LogSettings#getEntries', 'url' => '/settings/admin/log/entries', 'verb' => 'GET'],
['name' => 'LogSettings#download', 'url' => '/settings/admin/log/download', 'verb' => 'GET'],

+ 9
- 9
apps/settings/js/vue-0.js
File diff suppressed because it is too large
Näytä tiedosto


+ 1
- 1
apps/settings/js/vue-0.js.map
File diff suppressed because it is too large
Näytä tiedosto


+ 3
- 3
apps/settings/js/vue-5.js
File diff suppressed because it is too large
Näytä tiedosto


+ 1
- 1
apps/settings/js/vue-5.js.map
File diff suppressed because it is too large
Näytä tiedosto


+ 2
- 2
apps/settings/js/vue-7.js
File diff suppressed because it is too large
Näytä tiedosto


+ 1
- 1
apps/settings/js/vue-7.js.map
File diff suppressed because it is too large
Näytä tiedosto


+ 9
- 9
apps/settings/js/vue-settings-admin-security.js
File diff suppressed because it is too large
Näytä tiedosto


+ 1
- 1
apps/settings/js/vue-settings-admin-security.js.map
File diff suppressed because it is too large
Näytä tiedosto


+ 2
- 2
apps/settings/js/vue-settings-apps-users-management.js
File diff suppressed because it is too large
Näytä tiedosto


+ 1
- 1
apps/settings/js/vue-settings-apps-users-management.js.map
File diff suppressed because it is too large
Näytä tiedosto


+ 9
- 9
apps/settings/js/vue-settings-personal-security.js
File diff suppressed because it is too large
Näytä tiedosto


+ 1
- 1
apps/settings/js/vue-settings-personal-security.js.map
File diff suppressed because it is too large
Näytä tiedosto


+ 21
- 0
apps/settings/lib/Controller/UsersController.php Näytä tiedosto

@@ -35,11 +35,13 @@ use OC\AppFramework\Http;
use OC\Encryption\Exceptions\ModuleDoesNotExistsException;
use OC\ForbiddenException;
use OC\Security\IdentityProof\Manager;
use OCA\Settings\AppInfo\Application;
use OCA\Settings\BackgroundJobs\VerifyUserData;
use OCA\User_LDAP\User_Proxy;
use OCP\App\IAppManager;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\BackgroundJob\IJobList;
use OCP\Encryption\IManager;
@@ -52,6 +54,7 @@ use OCP\IUserManager;
use OCP\IUserSession;
use OCP\L10N\IFactory;
use OCP\Mail\IMailer;
use function in_array;

class UsersController extends Controller {
/** @var IUserManager */
@@ -238,10 +241,28 @@ class UsersController extends Controller {
$serverData['canChangePassword'] = $canChangePassword;
$serverData['newUserGenerateUserID'] = $this->config->getAppValue('core', 'newUser.generateUserID', 'no') === 'yes';
$serverData['newUserRequireEmail'] = $this->config->getAppValue('core', 'newUser.requireEmail', 'no') === 'yes';
$serverData['newUserSendEmail'] = $this->config->getAppValue('core', 'newUser.sendEmail', 'yes') === 'yes';

return new TemplateResponse('settings', 'settings-vue', ['serverData' => $serverData]);
}

/**
* @param string $key
* @param string $value
*
* @return JSONResponse
*/
public function setPreference(string $key, string $value): JSONResponse {
$allowed = ['newUser.sendEmail'];
if (!in_array($key, $allowed, true)) {
return new JSONResponse([], Http::STATUS_FORBIDDEN);
}

$this->config->setAppValue('core', $key, $value);

return new JSONResponse([]);
}

/**
* Parse the app value for quota_present
*

+ 31
- 0
apps/settings/src/views/Users.vue Näytä tiedosto

@@ -135,6 +135,14 @@
class="checkbox">
<label for="showStoragePath">{{ t('settings', 'Show storage path') }}</label>
</div>
<div>
<input id="sendWelcomeMail"
v-model="sendWelcomeMail"
:disabled="loadingSendMail"
type="checkbox"
class="checkbox">
<label for="sendWelcomeMail">{{ t('settings', 'Send email to new user') }}</label>
</div>
</AppNavigationSettings>
</AppNavigation>
<AppContent>
@@ -156,7 +164,9 @@ import AppNavigationCounter from '@nextcloud/vue/dist/Components/AppNavigationCo
import AppNavigationItem from '@nextcloud/vue/dist/Components/AppNavigationItem'
import AppNavigationNew from '@nextcloud/vue/dist/Components/AppNavigationNew'
import AppNavigationSettings from '@nextcloud/vue/dist/Components/AppNavigationSettings'
import axios from '@nextcloud/axios'
import Content from '@nextcloud/vue/dist/Components/Content'
import { generateUrl } from '@nextcloud/router'
import Multiselect from '@nextcloud/vue/dist/Components/Multiselect'
import Vue from 'vue'
import VueLocalStorage from 'vue-localstorage'
@@ -194,6 +204,7 @@ export default {
selectedQuota: false,
externalActions: [],
loadingAddGroup: false,
loadingSendMail: false,
showConfig: {
showStoragePath: false,
showUserBackend: false,
@@ -276,6 +287,26 @@ export default {

},

sendWelcomeMail: {
get() {
return this.settings.newUserSendEmail
},
async set(value) {
try {
this.loadingSendMail = true
this.$store.commit('setServerData', {
...this.settings,
newUserSendEmail: value,
})
await axios.post(generateUrl(`/settings/users/preferences/newUser.sendEmail`), { value: value ? 'yes' : 'no' })
} catch (e) {
console.error('could not update newUser.sendEmail preference: ' + e.message, e)
} finally {
this.loadingSendMail = false
}
},
},

groupList() {
const groups = Array.isArray(this.groups) ? this.groups : []


Loading…
Peruuta
Tallenna