@@ -268,36 +268,108 @@ def useThisDB(self, name):
268
268
return data
269
269
else :
270
270
logging .debug ("We are in the database {0}" .format (name ))
271
- return True
272
-
273
- def isCurrentUserSysadmin (self ):
271
+ return True
272
+
273
+ def __isCurrentUser__ (self , roleName ):
274
274
'''
275
- Returns True if current user is SYSADMIN
275
+ Returns True if current user has roleName
276
276
Otherwise return False
277
277
If error, return Exception
278
278
'''
279
- REQ_IS_SYSADMIN = "SELECT is_srvrolemember('sysadmin ') as issysadmin"
280
- logging .info ("Checking if the current user is sysadmin" )
281
- data = self .executeRequest (REQ_IS_SYSADMIN ,ld = ['issysadmin ' ])
279
+ REQ = "SELECT is_srvrolemember('{0} ') as role" . format ( roleName )
280
+ logging .info ("Checking if the current user is {0}" . format ( roleName ) )
281
+ data = self .executeRequest (REQ ,ld = ['role ' ])
282
282
if isinstance (data ,Exception ):
283
- logging .warning ("Impossible to known if the user is sysadmin : {0 }" .format (data ))
283
+ logging .warning ("Impossible to known if the user has {0} role : {1 }" .format (roleName , data ))
284
284
return data
285
285
else :
286
286
for e in data :
287
- if e ['issysadmin ' ]== 0 :
288
- logging .debug ("The current user is not SYSADMIN" )
287
+ if e ['role ' ]== 0 :
288
+ logging .debug ("The current user is not {0}" . format ( roleName ) )
289
289
return False
290
- elif e ['issysadmin ' ]== 1 :
291
- logging .debug ("The current user is SYSADMIN" )
290
+ elif e ['role ' ]== 1 :
291
+ logging .debug ("The current user is {0}" . format ( roleName ) )
292
292
return True
293
293
else :
294
- msg = "Impossible to known if the user is sysadmin because the result is not 1 or 0. The result is '{0 }'" .format (e ['issysadmin' ])
294
+ msg = "Impossible to known if the user has {0} because the result is not 1 or 0. The result is '{1 }'" .format (roleName , e ['issysadmin' ])
295
295
logging .warning (msg )
296
296
return ErrorClass (msg )
297
- msg = "Impossible to known if the user is sysadmin because the result is empty"
297
+ msg = "Impossible to known if the user has {0} because the result is empty"
298
298
logging .warning (msg )
299
299
return ErrorClass (msg )
300
-
300
+
301
+ def isCurrentUserSysadmin (self ):
302
+ '''
303
+ Returns True if current user is SYSADMIN
304
+ Otherwise return False
305
+ If error, return Exception
306
+ '''
307
+ return self .__isCurrentUser__ ('sysadmin' )
308
+
309
+ def isCurrentUserServeradmin (self ):
310
+ '''
311
+ Returns True if current user is serveradmin
312
+ Otherwise return False
313
+ If error, return Exception
314
+ '''
315
+ return self .__isCurrentUser__ ('serveradmin' )
316
+
317
+ def isCurrentUserDbcreator (self ):
318
+ '''
319
+ Returns True if current user is dbcreator
320
+ Otherwise return False
321
+ If error, return Exception
322
+ '''
323
+ return self .__isCurrentUser__ ('dbcreator' )
324
+
325
+ def isCurrentUserSetupadmin (self ):
326
+ '''
327
+ Returns True if current user is setupadmin
328
+ Otherwise return False
329
+ If error, return Exception
330
+ '''
331
+ return self .__isCurrentUser__ ('setupadmin' )
332
+
333
+ def isCurrentUserBulkadmin (self ):
334
+ '''
335
+ Returns True if current user is bulkadmin
336
+ Otherwise return False
337
+ If error, return Exception
338
+ '''
339
+ return self .__isCurrentUser__ ('bulkadmin' )
340
+
341
+ def isCurrentUserSecurityadmin (self ):
342
+ '''
343
+ Returns True if current user is securityadmin
344
+ Otherwise return False
345
+ If error, return Exception
346
+ '''
347
+ return self .__isCurrentUser__ ('securityadmin' )
348
+
349
+ def isCurrentUserDiskadmin (self ):
350
+ '''
351
+ Returns True if current user is diskadmin
352
+ Otherwise return False
353
+ If error, return Exception
354
+ '''
355
+ return self .__isCurrentUser__ ('diskadmin' )
356
+
357
+ def isCurrentUserPublic (self ):
358
+ '''
359
+ Returns True if current user is public
360
+ Otherwise return False
361
+ If error, return Exception
362
+ '''
363
+ return self .__isCurrentUser__ ('public' )
364
+
365
+ def isCurrentUserProcessadmin (self ):
366
+ '''
367
+ Returns True if current user is processadmin
368
+ Otherwise return False
369
+ If error, return Exception
370
+ '''
371
+ return self .__isCurrentUser__ ('processadmin' )
372
+
301
373
def getCurrentUser (self ):
302
374
'''
303
375
Returns the current user name
0 commit comments