##// END OF EJS Templates
auth: don't break hashing in case of user with empty password....
auth: don't break hashing in case of user with empty password. In some cases such as LDAP user created via external scripts users might set the passwords to empty. The hashing uses the md5(password_hash) to store reference to detect password changes and forbid using the same password. In case of pure LDAP users this is not valid, and we shouldn't raise Errors in such case. This change makes it work for empty passwords now.

File last commit:

r1393:f73f8d06 default
r2203:8a18c3c3 default
Show More
reset-information.rst
151 lines | 4.5 KiB | text/x-rst | RstLexer
/ docs / admin / reset-information.rst

Settings Management

All |RCE| settings can be set from the user interface, but in the event that it somehow becomes unavailable you can use ishell inside your |RCE| virtualenv to carry out emergency measures.

Warning

Logging into the |RCE| database with iShell should only be done by an experienced and knowledgeable database administrator.

Reset Admin Account Privileges

If you accidentally remove your admin privileges from the admin account you can restore them using ishell. Use the following example to reset your account permissions.

# Open iShell from the terminal
$ rccontrol ishell enterprise-1
# Use this example to change user permissions
In [1]: adminuser = User.get_by_username('username')
In [2]: adminuser.admin = True
In [3]: Session().add(adminuser);Session().commit()
In [4]: exit()

Set to read global .hgrc file

By default, |RCE| does not read global hgrc files in /etc/mercurial/hgrc or /etc/mercurial/hgrc.d because it can lead to issues. This is set in the rhodecode_ui table for which there is no UI. If you need to edit this you can manually change the settings using SQL statements with ishell. Use the following example to make changes to this table.

# Open iShell from the terminal
$ rccontrol ishell enterprise-1
# Use this example to enable global .hgrc access
In [1]: new_option = RhodeCodeUi()
In [2]: new_option.ui_section='web'
In [3]: new_option.ui_key='allow_push'
In [4]: new_option.ui_value='*'
In [5]: Session().add(new_option);Session().commit()
In [6]: exit()

Manually Reset Password

If you need to manually reset a user password, use the following steps.

  1. Navigate to your |RCE| install location.
  2. Run the interactive ishell prompt.
  3. Set a new password.

Use the following code example to carry out these steps.

# starts the ishell interactive prompt
$ rccontrol ishell enterprise-1
In [1]: from rhodecode.lib.auth import generate_auth_token
In [2]: from rhodecode.lib.auth import get_crypt_password
# Enter the user name whose password you wish to change
In [3]: my_user = 'USERNAME'
In [4]: u = User.get_by_username(my_user)
# If this fails then the user does not exist
In [5]: u.auth_token = generate_auth_token(my_user)
# Set the new password
In [6]: u.password = get_crypt_password('PASSWORD')
In [7]: Session().add(u);Session().commit()
In [8]: exit()

Change user details

If you need to manually change some of users details, use the following steps.

  1. Navigate to your |RCE| install location.
  2. Run the interactive ishell prompt.
  3. Set a new arguments for users.

Use the following code example to carry out these steps.

# starts the ishell interactive prompt
$ rccontrol ishell enterprise-1
# Use this example to change email and username of LDAP user
In [1]: my_user = User.get_by_username('some_username')
In [2]: my_user.email = 'new_email@foobar.com'
In [3]: my_user.username = 'SomeUser'
In [4]: Session().add(my_user);Session().commit()
In [5]: exit()

Change user login type

Sometimes it's required to change account type from RhodeCode to LDAP or other external authentication type. If you need to manually change the method of login, use the following steps.

  1. Navigate to your |RCE| install location.
  2. Run the interactive ishell prompt.
  3. Set a new arguments for users.

Use the following code example to carry out these steps. Available values for new_extern_type can be found when browsing available authentication types in RhodeCode admin interface for authentication. Use the text which is shown after '#' sign, eg. ` LDAP (egg:rhodecode-enterprise-ce#ldap)` it's type is 'ldap'

# starts the ishell interactive prompt
$ rccontrol ishell enterprise-1
# Use this example to change users from authentication
# using rhodecode internal to ldap
In [1]: new_extern_type = 'ldap'
In [2]: my_user = User.get_by_username('some_username')
In [3]: my_user.extern_type = new_extern_type
In [4]: my_user.extern_name = new_extern_type
In [5]: Session().add(my_user);Session().commit()
In [6]: exit()