26 from django.conf
import settings
as settings
27 from clm.models.user
import User
28 from clm.models.cluster
import Cluster
29 from clm.utils
import mail
30 from clm.utils.cm
import CM
31 from clm.utils.decorators
import admin_clm_log
32 from clm.utils.exception
import CLMException
33 from common.states
import user_active_states
34 from datetime
import datetime
49 def edit(cm_id, caller_id, user_id, first=None, last=None, organization=None, email=None):
51 user = User.get(user_id)
57 user.organization = organization
63 raise CLMException(
'user_edit')
76 user = User.get(user_id)
87 return [u.dict
for u
in User.objects.all()]
103 user = User.get(user_id)
107 for cluster
in Cluster.objects.filter(state__exact=0):
108 resp = CM(cluster.id).send_request(
"guest/user/add/", new_user_id=user.id)
110 if resp[
'status'] ==
'ok':
111 cms.append(cluster.id)
113 user.is_active = user_active_states[
'ok']
115 if not user.activation_date:
116 user.activation_date = datetime.now()
121 raise CLMException(
'user_activate')
123 if settings.MAILER_ACTIVE:
124 mail.send_activation_confirmation_email(user, wi_data)
144 def block(cm_id, caller_id, user_id, wi_data, block):
145 user = User.get(user_id)
148 if user.is_active == user_active_states[
'ok']
or user.is_active == user_active_states[
'email_confirmed']:
149 user.is_active = user_active_states[
'blocked']
151 raise CLMException(
'user_state')
153 if user.is_active == user_active_states[
'blocked']:
154 user.is_active = user_active_states[
'ok']
156 raise CLMException(
'user_state')
161 raise CLMException(
'user_block' if block
else 'user_unblock')
163 if settings.MAILER_ACTIVE:
164 mail.send_block_email(user, block, wi_data)
181 user = User.get(user_id)
182 user.is_superuser = admin
187 raise CLMException(
'user_set_admin' if admin
else 'user_unset_admin')
202 user = User.get(user_id)
204 if user.last_login_date
or user.is_active == user_active_states[
'ok']:
205 raise CLMException(
'user_active')
210 raise CLMException(
'user_delete')
224 user = User.get(user_id)
225 user.password = new_password
230 raise CLMException(
'user_edit')