Prevent SSO users from changing their email

This commit is contained in:
JoramWilander
2015-11-06 08:56:13 -05:00
parent 6417d4728d
commit 7eca077877
4 changed files with 67 additions and 38 deletions

View File

@@ -114,7 +114,7 @@ func createUser(c *Context, w http.ResponseWriter, r *http.Request) {
sendWelcomeEmail = false
}
if len(user.AuthData) > 0 && len(user.AuthService) > 0 {
if user.IsSSOUser() {
user.EmailVerified = true
}

View File

@@ -326,6 +326,13 @@ func IsInRole(userRoles string, inRole string) bool {
return false
}
func (u *User) IsSSOUser() bool {
if len(u.AuthData) != 0 && len(u.AuthService) != 0 {
return true
}
return false
}
func (u *User) PreExport() {
u.Password = ""
u.AuthData = ""

View File

@@ -140,7 +140,9 @@ func (us SqlUserStore) Update(user *model.User, allowActiveUpdate bool) StoreCha
user.DeleteAt = oldUser.DeleteAt
}
if user.Email != oldUser.Email {
if user.IsSSOUser() {
user.Email = oldUser.Email
} else if user.Email != oldUser.Email {
user.EmailVerified = false
}

View File

@@ -451,6 +451,9 @@ export default class UserSettingsGeneralTab extends React.Component {
}
}
let submit = null;
if (this.props.user.auth_service === '') {
inputs.push(
<div key='emailSetting'>
<div className='form-group'>
@@ -484,11 +487,24 @@ export default class UserSettingsGeneralTab extends React.Component {
</div>
);
submit = this.submitEmail;
} else {
inputs.push(
<div
key='oauthEmailInfo'
className='form-group'
>
<div className='setting-list__hint'>{'Log in occurs through GitLab. Email cannot be updated.'}</div>
{helpText}
</div>
);
}
emailSection = (
<SettingItemMax
title='Email'
inputs={inputs}
submit={this.submitEmail}
submit={submit}
server_error={serverError}
client_error={emailError}
updateSection={function clearSection(e) {
@@ -499,6 +515,7 @@ export default class UserSettingsGeneralTab extends React.Component {
);
} else {
let describe = '';
if (this.props.user.auth_service === '') {
if (this.state.emailChangeInProgress) {
const newEmail = UserStore.getCurrentUser().email;
if (newEmail) {
@@ -509,6 +526,9 @@ export default class UserSettingsGeneralTab extends React.Component {
} else {
describe = UserStore.getCurrentUser().email;
}
} else {
describe = 'Log in done through GitLab';
}
emailSection = (
<SettingItemMin