51 |
51 |
from os.path import basename
|
52 |
52 |
|
53 |
53 |
from synnefo.db import models
|
|
54 |
from synnefo.invitations.invitations import add_invitation, send_invitation
|
|
55 |
from synnefo.logic.users import _register_user, delete_user
|
54 |
56 |
|
55 |
57 |
|
56 |
58 |
def get_user(uid):
|
... | ... | |
163 |
165 |
class CreateUser(Command):
|
164 |
166 |
group = 'user'
|
165 |
167 |
name = 'create'
|
166 |
|
syntax = '<user name>'
|
|
168 |
syntax = '<username> <email>'
|
167 |
169 |
description = 'create a user'
|
168 |
170 |
|
169 |
171 |
def add_options(self, parser):
|
170 |
|
parser.add_option('--credit', dest='credit', metavar='VALUE',
|
171 |
|
help='set user credits')
|
172 |
|
parser.add_option('--invitations', dest='invitations',
|
173 |
|
metavar='VALUE', help='set max invitations')
|
174 |
172 |
parser.add_option('--realname', dest='realname', metavar='NAME',
|
175 |
173 |
help='set real name of user')
|
176 |
174 |
parser.add_option('--type', dest='type', metavar='TYPE',
|
177 |
175 |
help='set user type')
|
178 |
|
parser.add_option('--uniq', dest='uniq', metavar='ID',
|
179 |
|
help='set external unique ID')
|
180 |
176 |
|
181 |
|
def main(self, username):
|
182 |
|
user = models.SynnefoUser(name=username)
|
183 |
|
user.credit = self.credit if self.credit else 0
|
184 |
|
user.max_invitations = self.invitations if self.invitations else 0
|
185 |
|
user.realname = self.realname if self.realname else username
|
186 |
|
|
187 |
|
if self.type:
|
188 |
|
allowed = [x[0] for x in models.SynnefoUser.ACCOUNT_TYPE]
|
189 |
|
if self.type not in allowed:
|
190 |
|
print 'Invalid type'
|
191 |
|
return
|
192 |
|
user.type = self.type
|
193 |
|
else:
|
194 |
|
user.type = 'USER'
|
195 |
|
|
196 |
|
if self.uniq:
|
197 |
|
user.uniq = self.uniq
|
|
177 |
def main(self, username, email):
|
|
178 |
realname = self.realname or username
|
|
179 |
type = self.type or 'USER'
|
|
180 |
if type not in [x[0] for x in models.SynnefoUser.ACCOUNT_TYPE]:
|
|
181 |
print 'Invalid type'
|
|
182 |
return
|
198 |
183 |
|
199 |
|
user.save()
|
|
184 |
user = _register_user(realname, username, email, type)
|
200 |
185 |
print_item(user)
|
201 |
186 |
|
202 |
187 |
|
... | ... | |
212 |
197 |
default=False, help='force deletion (use with care)')
|
213 |
198 |
|
214 |
199 |
def main(self, user_id):
|
215 |
|
if not self.force:
|
|
200 |
if self.force:
|
|
201 |
user = get_user(user_id)
|
|
202 |
delete_user(user)
|
|
203 |
else:
|
216 |
204 |
print "WARNING: Deleting a user is a very destructive operation."
|
217 |
205 |
print "Any objects with foreign keys pointing to this user will" \
|
218 |
206 |
" be deleted as well."
|
219 |
207 |
print "Use --force to force deletion of this user."
|
220 |
208 |
print "You have been warned!"
|
221 |
|
return
|
222 |
|
|
223 |
|
user = get_user(user_id)
|
224 |
|
user.delete()
|
|
209 |
|
|
210 |
|
|
211 |
class InviteUser(Command):
|
|
212 |
group = 'user'
|
|
213 |
name = 'invite'
|
|
214 |
syntax = '<inviter id> <invitee name> <invitee email>'
|
|
215 |
description = 'invite a user'
|
|
216 |
|
|
217 |
def main(self, inviter_id, name, email):
|
|
218 |
inviter = get_user(inviter_id)
|
|
219 |
inv = add_invitation(inviter, name, email)
|
|
220 |
send_invitation(inv)
|
225 |
221 |
|
226 |
222 |
|
227 |
223 |
class ListUsers(Command):
|