@@ -121,15 +121,15 @@ def roles_create(**kwargs):
121121@with_appcontext
122122@commit
123123def roles_add (user , role ):
124- """Add user to role ."""
124+ """Add role to user ."""
125125 user , role = _datastore ._prepare_role_modify_args (user , role )
126126 if user is None :
127127 raise click .UsageError ("Cannot find user." )
128128 if role is None :
129129 raise click .UsageError ("Cannot find role." )
130130 if _datastore .add_role_to_user (user , role ):
131131 click .secho (
132- 'Role "{0}" added to user "{1}" ' "successfully." .format (role , user ),
132+ 'Role "{0}" added to user "{1}" ' "successfully." .format (role . name , user ),
133133 fg = "green" ,
134134 )
135135 else :
@@ -142,15 +142,16 @@ def roles_add(user, role):
142142@with_appcontext
143143@commit
144144def roles_remove (user , role ):
145- """Remove user from role ."""
145+ """Remove role from user ."""
146146 user , role = _datastore ._prepare_role_modify_args (user , role )
147147 if user is None :
148148 raise click .UsageError ("Cannot find user." )
149149 if role is None :
150150 raise click .UsageError ("Cannot find role." )
151151 if _datastore .remove_role_from_user (user , role ):
152152 click .secho (
153- 'Role "{0}" removed from user "{1}" ' "successfully." .format (role , user ),
153+ 'Role "{0}" removed from user "{1}" '
154+ "successfully." .format (role .name , user ),
154155 fg = "green" ,
155156 )
156157 else :
@@ -165,7 +166,7 @@ def users_activate(user):
165166 """Activate a user."""
166167 user_obj = _datastore .get_user (user )
167168 if user_obj is None :
168- raise click .UsageError ("ERROR: User not found." )
169+ raise click .UsageError ("User not found." )
169170 if _datastore .activate_user (user_obj ):
170171 click .secho ('User "{0}" has been activated.' .format (user ), fg = "green" )
171172 else :
@@ -180,8 +181,29 @@ def users_deactivate(user):
180181 """Deactivate a user."""
181182 user_obj = _datastore .get_user (user )
182183 if user_obj is None :
183- raise click .UsageError ("ERROR: User not found." )
184+ raise click .UsageError ("User not found." )
184185 if _datastore .deactivate_user (user_obj ):
185186 click .secho ('User "{0}" has been deactivated.' .format (user ), fg = "green" )
186187 else :
187188 click .secho ('User "{0}" was already deactivated.' .format (user ), fg = "yellow" )
189+
190+
191+ @users .command (
192+ "reset_access" ,
193+ help = "Reset all authentication credentials for user."
194+ " This includes session, auth token, two-factor"
195+ " and unified sign in secrets. " ,
196+ )
197+ @click .argument ("user" )
198+ @with_appcontext
199+ @commit
200+ def users_reset_access (user ):
201+ """ Reset all authentication tokens etc."""
202+ user_obj = _datastore .get_user (user )
203+ if user_obj is None :
204+ raise click .UsageError ("User not found." )
205+ _datastore .reset_user_access (user_obj )
206+ click .secho (
207+ 'User "{user}" authentication credentials have been reset.' .format (user = user ),
208+ fg = "green" ,
209+ )
0 commit comments