Revision cf8482f2

b/invitations/invitations.py
258 258
def get_user_inv_level(u):
259 259
    inv = Invitations.objects.filter(target = u)
260 260

  
261
    if inv is None:
261
    if not inv:
262 262
        raise Exception("User without invitation", u)
263 263

  
264 264
    return inv[0].level
b/logic/users.py
46 46
    user.uniq = unq
47 47
    user.type = t
48 48
    user.credit = 10 #TODO: Fix this when we have a per group policy
49
    user.max_invitations = 0
49 50
    user.save()
50 51
    create_auth_token(user)
52
    return user
51 53

  
52 54
def create_uname(fullname):
53 55
    fullname = fullname.strip()
b/tools/snf-admin
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):

Also available in: Unified diff