Ejemplo n.º 1
0
    def delUser(self,user_ids,comment,del_connections,admin_name,remote_address):
	"""
	    delete users with ids in user_ids
	    comment: comment when deleting users
	    del_connection tells if we should delete user(s) connection logs too
	"""
	self.__delUserCheckInput(user_ids,comment,del_connections,admin_name,remote_address)
	admin_obj=admin_main.getLoader().getAdminByName(admin_name)
	map(lambda user_id:user_main.getUserPool().addToBlackList,user_ids)
	try:
	    loaded_users=self.getLoadedUsersByUserID(user_ids)
	    total_credit=self.__delUserCheckUsers(loaded_users)
	    admin_deposit=total_credit*-1
	    ibs_query=IBSQuery()
	    ibs_query+=user_main.getCreditChangeLogActions().logCreditChangeQuery("DEL_USER",
									      admin_obj.getAdminID(),
									      user_ids,
									      0,
									      admin_deposit,
									      remote_address,
									      comment)
	    ibs_query+=admin_main.getActionManager().consumeDepositQuery(admin_obj.getAdminID(),admin_deposit)
	    self.__delUserQuery(ibs_query,user_ids,del_connections)
	    ibs_query.runQuery()
	    admin_obj.consumeDeposit(admin_deposit)
	    map(user_main.getUserPool().userChanged,user_ids)
	finally:
	    map(lambda user_id:user_main.getUserPool().removeFromBlackList,user_ids)
Ejemplo n.º 2
0
    def delUser(self, user_ids, comment, del_connections, del_audit_logs,
                admin_name, remote_address):
        """
            delete users with ids in user_ids
            comment: comment when deleting users
            del_connection tells if we should delete user(s) connection logs too
        """
        self.__delUserCheckInput(user_ids, comment, del_connections,
                                 del_audit_logs, admin_name, remote_address)
        admin_obj = admin_main.getLoader().getAdminByName(admin_name)
        map(lambda user_id: user_main.getUserPool().addToBlackList, user_ids)
        try:
            loaded_users = self.getLoadedUsersByUserID(user_ids)
            total_credit = self.__delUserCheckUsers(loaded_users)
            admin_deposit = total_credit * -1
            ibs_query = IBSQuery()
            ibs_query += user_main.getCreditChangeLogActions(
            ).logCreditChangeQuery("DEL_USER", admin_obj.getAdminID(),
                                   user_ids, 0, admin_deposit, remote_address,
                                   comment)
            ibs_query += admin_main.getActionManager().consumeDepositQuery(
                admin_obj.getAdminID(), admin_deposit)
            ibs_query += ias_main.getActionsManager().logEvent(
                "DELETE_USER", admin_name, 0, ",".join(user_ids))

            self.__delUserQuery(ibs_query, user_ids, del_connections,
                                del_audit_logs)
            ibs_query.runQuery()
            admin_obj.consumeDeposit(admin_deposit)
            map(user_main.getUserPool().userChanged, user_ids)
        finally:
            map(lambda user_id: user_main.getUserPool().removeFromBlackList,
                user_ids)

        self.__postDelUser(loaded_users)
Ejemplo n.º 3
0
    def __delChargeFromDB(self,charge_obj):
	"""
	    --completely-- delete charge with id "charge_id" from db, also delete
	    it's rules and ports
	"""
	ibs_query=IBSQuery()
	for charge_rule_id in charge_obj.getRules():
	    ibs_query+=self.__delChargeRuleTotallyQuery(charge_rule_id,charge_obj)
	
	ibs_query+=self.__delChargeQuery(charge_obj.getChargeID())
	ibs_query.runQuery()
Ejemplo n.º 4
0
    def __delChargeFromDB(self, charge_obj):
        """
            --completely-- delete charge with id "charge_id" from db, also delete
            it's rules and ports
        """
        ibs_query = IBSQuery()
        for charge_rule_id in charge_obj.getRules():
            ibs_query += self.__delChargeRuleTotallyQuery(
                charge_rule_id, charge_obj)

        ibs_query += self.__delChargeQuery(charge_obj.getChargeID())
        ibs_query.runQuery()
Ejemplo n.º 5
0
    def addNewUsers(self,_count,credit,owner_name,creator_name,group_name,remote_address,credit_change_comment):
	self.__addNewUsersCheckInput(_count,credit,owner_name,creator_name,group_name,remote_address,credit_change_comment)
	admin_consumed_credit=credit*_count
	ibs_query=IBSQuery()
	ibs_query+=admin_main.getActionManager().consumeDeposit(creator_name,admin_consumed_credit)
	try:
	    user_ids=self.addNewUsersQuery(_count,credit,owner_name,group_name,ibs_query)
	    creator_admin_obj=admin_main.getLoader().getAdminByName(creator_name)
    	    ibs_query+=user_main.getCreditChangeLogActions().logCreditChangeQuery("ADD_USER",creator_admin_obj.getAdminID(),user_ids,credit,\
					admin_consumed_credit,remote_address,credit_change_comment)
	    ibs_query.runQuery()
	    return user_ids
	except:
	    admin_main.getActionManager().consumeDeposit(creator_name,-1*admin_consumed_credit,False) #re-add deposit to admin
	    raise
Ejemplo n.º 6
0
    def updateUserAttrs(self,loaded_users,admin_obj,attrs,to_del_attrs):
	"""
	    loaded_users(list of LoadedUser instances):
	    
	"""
	self.__updateUserAttrsCheckInput(loaded_users,admin_obj,attrs,to_del_attrs)
	changed_attr_updaters=user_main.getAttributeManager().getAttrUpdaters(attrs,"change")
	deleted_attr_updaters=user_main.getAttributeManager().getAttrUpdaters(to_del_attrs,"delete")
	users=self.__createUsersDic(loaded_users)
	ibs_query=IBSQuery()
	ibs_query=self.__getChangedQuery(ibs_query,users,admin_obj,changed_attr_updaters)
	ibs_query=self.__getDeletedQuery(ibs_query,users,admin_obj,deleted_attr_updaters)
	ibs_query.runQuery()
	self.__broadcastChange(users.keys())
	self.__callPostUpdates(changed_attr_updaters,deleted_attr_updaters)
Ejemplo n.º 7
0
    def addNewUsers(self,
                    _count,
                    credit,
                    owner_name,
                    creator_name,
                    group_name,
                    remote_address,
                    credit_change_comment,
                    user_ids=None):
        """
            add _count of users to system
            _count(int): postive integer
            credit(float): initial credit of users
            owner_name(str): valid admin name, that is owner of created users
            creator_name(str): valid admin name, that created users
            group_name(str): valid group name these users belongs to
            remote_address(str): ip address that admin used to create these users
            credit_change_comment(str): 
            user_ids(None or list of int): list of user_ids to use. if set to None
                                           generate new ids
                    
        """
        self.__addNewUsersCheckInput(_count, credit, owner_name, creator_name,
                                     group_name, remote_address,
                                     credit_change_comment, user_ids)
        admin_consumed_credit = credit * _count
        ibs_query = IBSQuery()
        ibs_query += admin_main.getActionManager().consumeDeposit(
            creator_name, admin_consumed_credit)
        try:
            user_ids = self.addNewUsersQuery(_count, credit, owner_name,
                                             group_name, ibs_query, user_ids)
            creator_admin_obj = admin_main.getLoader().getAdminByName(
                creator_name)
            ibs_query+=user_main.getCreditChangeLogActions().logCreditChangeQuery("ADD_USER",creator_admin_obj.getAdminID(),user_ids,credit,\
                                        admin_consumed_credit,remote_address,credit_change_comment)
            self.__addNewUserIASQuery(ibs_query, creator_name, credit,
                                      user_ids)

            ibs_query.runQuery()
            return user_ids
        except:
            admin_main.getActionManager().consumeDeposit(
                creator_name, -1 * admin_consumed_credit,
                False)  #re-add deposit to admin
            raise
Ejemplo n.º 8
0
    def changeQuery(self, ibs_query, src, action, **args):
        admin_obj = args["admin_obj"]
        users = args["users"]
        user_ids = users.keys()
        user_ids.sort()

        self.__parseVoIPAttrs()
        self.__changeCheckInput(users, admin_obj)

        null_queries = IBSQuery()
        real_queries = IBSQuery()

        i = 0
        for user_id in user_ids:
            loaded_user = users[user_id]
            if loaded_user.userHasAttr("voip_username"):
                null_queries += self.updateVoIPUserAttrsToNullQuery(user_id)
                real_queries += self.updateVoIPUserAttrsQuery(
                    user_id, self.usernames[i],
                    self.passwords[i].getPassword())
                old_value = loaded_user.getUserAttrs()["voip_username"]
            else:
                real_queries += self.insertVoIPUserAttrsQuery(
                    user_id, self.usernames[i],
                    self.passwords[i].getPassword())

                old_value = self.AUDIT_LOG_NOVALUE

            if defs.USER_AUDIT_LOG:
                ibs_query += user_main.getUserAuditLogManager(
                ).userAuditLogQuery(args["admin_obj"].getAdminID(), True,
                                    loaded_user.getUserID(), "voip_username",
                                    old_value, self.usernames[i])

            i += 1

        ibs_query += null_queries
        ibs_query += real_queries

        if self.voip_save:
            user_main.getAddUserSaveActions().newAddUser(
                ibs_query, user_ids, self.usernames, self.passwords,
                admin_obj.getAdminID(), "VoIP", "")
        return ibs_query
Ejemplo n.º 9
0
    def updateGroupAttrs(self,group_name,attrs,to_del_attrs,admin_obj):
	"""
	    update group attributes
	    attrs(dic): a dic of attributes in format attr_name=>attr_value that tell "I want these attributes
			have these values", so attrs may contain only a portion of attributes and not all of them
	    to_del_attrs(list): list of attributes that should be deleted from group
	    admin_obj(Admin instance): admin that request this update
	"""    
	group_obj=group_main.getLoader().getGroupByName(group_name)
	changed_attr_updaters=user_main.getAttributeManager().getAttrUpdaters(attrs,"change")
	deleted_attr_updaters=user_main.getAttributeManager().getAttrUpdaters(to_del_attrs,"delete")
	ibs_query=IBSQuery()
	self.__getChangedQuery(ibs_query,group_obj,changed_attr_updaters,admin_obj)
	self.__getDeletedQuery(ibs_query,group_obj,deleted_attr_updaters,admin_obj)
	ibs_query.runQuery()
	
	group_main.getLoader().loadGroupByName(group_name)
	self.__broadcastChange()
	self.__callPostUpdates(changed_attr_updaters,deleted_attr_updaters)
Ejemplo n.º 10
0
    def updateGroupAttrs(self, group_name, attrs, to_del_attrs, admin_obj):
        """
            update group attributes
            attrs(dic): a dic of attributes in format attr_name=>attr_value that tell "I want these attributes
                        have these values", so attrs may contain only a portion of attributes and not all of them
            to_del_attrs(list): list of attributes that should be deleted from group
            admin_obj(Admin instance): admin that request this update
        """
        group_obj = group_main.getLoader().getGroupByName(group_name)
        changed_attr_updaters = user_main.getAttributeManager(
        ).getAttrUpdaters(attrs, "change")
        deleted_attr_updaters = user_main.getAttributeManager(
        ).getAttrUpdaters(to_del_attrs, "delete")
        ibs_query = IBSQuery()
        self.__getChangedQuery(ibs_query, group_obj, changed_attr_updaters,
                               admin_obj)
        self.__getDeletedQuery(ibs_query, group_obj, deleted_attr_updaters,
                               admin_obj)
        ibs_query.runQuery()

        group_main.getLoader().loadGroupByName(group_name)
        self.__broadcastChange()
        self.__callPostUpdates(changed_attr_updaters, deleted_attr_updaters)
Ejemplo n.º 11
0
    def changeCredit(self,user_ids,credit,changer_admin_name,remote_address,credit_change_comment,loaded_users):
	"""
	    change credit of user(s) with user_id in "user_ids"
	    user_ids(iterable object, list or multi_str): user_ids that credit will be changed
	    credit(float): amount of credit change, can be negative
	    changer_admin_name(string): username of admin that initiate the change. He should have enough deposit
	    remote_address(string): changer client ip address 
	    credit_change_comment(string): comment that will be stored in credit change log
	    loaded_users(LoadedUser instance): list of loaded users of "user_ids"
	"""
	self.__changeCreditCheckInput(user_ids,credit,changer_admin_name,remote_address,credit_change_comment,loaded_users)
	admin_consumed_credit=credit*len(user_ids)
	ibs_query=IBSQuery()
    	ibs_query+=admin_main.getActionManager().consumeDeposit(changer_admin_name,admin_consumed_credit)
	try:
	    changer_admin_obj=admin_main.getLoader().getAdminByName(changer_admin_name)
	    ibs_query+=self.__changeCreditQuery(user_ids,credit)
    	    ibs_query+=user_main.getCreditChangeLogActions().logCreditChangeQuery("CHANGE_CREDIT",changer_admin_obj.getAdminID(),user_ids,credit,\
					admin_consumed_credit,remote_address,credit_change_comment)
	    ibs_query.runQuery()
	except:
	    admin_main.getActionManager().consumeDeposit(changer_admin_name,-1*admin_consumed_credit,False) #re-add deposit to admin
	    raise
	self.__broadcastChange(user_ids)
Ejemplo n.º 12
0
    def changeCredit(self, user_ids, credit, changer_admin_name,
                     remote_address, credit_change_comment, loaded_users):
        """
            change credit of user(s) with user_id in "user_ids"
            user_ids(iterable object, list or multi_str): user_ids that credit will be changed
            credit(float): amount of credit change, can be negative
            changer_admin_name(string): username of admin that initiate the change. He should have enough deposit
            remote_address(string): changer client ip address 
            credit_change_comment(string): comment that will be stored in credit change log
            loaded_users(LoadedUser instance): list of loaded users of "user_ids"
        """
        self.__changeCreditCheckInput(user_ids, credit, changer_admin_name,
                                      remote_address, credit_change_comment,
                                      loaded_users)
        admin_consumed_credit = credit * len(user_ids)
        ibs_query = IBSQuery()
        ibs_query += admin_main.getActionManager().consumeDeposit(
            changer_admin_name, admin_consumed_credit)
        try:
            changer_admin_obj = admin_main.getLoader().getAdminByName(
                changer_admin_name)
            ibs_query += self.__changeCreditQuery(user_ids, credit)
            ibs_query+=user_main.getCreditChangeLogActions().logCreditChangeQuery("CHANGE_CREDIT",changer_admin_obj.getAdminID(),user_ids,credit,\
                                        admin_consumed_credit,remote_address,credit_change_comment)

            ibs_query += ias_main.getActionsManager().logEvent(
                "CHANGE_CREDIT", changer_admin_name, credit,
                ",".join(user_ids))

            ibs_query.runQuery()
        except:
            admin_main.getActionManager().consumeDeposit(
                changer_admin_name, -1 * admin_consumed_credit,
                False)  #re-add deposit to admin
            raise
        self.broadcastChange(user_ids)
Ejemplo n.º 13
0
 def updateUserAttrsQuery(self, loaded_users, admin_obj, attrs,
                          to_del_attrs):
     """
         return query for update user attrs.
         Caller must runQuery, broadcastChange and callPostUpdates
     """
     self.__updateUserAttrsCheckInput(loaded_users, admin_obj, attrs,
                                      to_del_attrs)
     changed_attr_updaters = user_main.getAttributeManager(
     ).getAttrUpdaters(attrs, "change")
     deleted_attr_updaters = user_main.getAttributeManager(
     ).getAttrUpdaters(to_del_attrs, "delete")
     users = self.__createUsersDic(loaded_users)
     ibs_query = IBSQuery()
     ibs_query = self.__getChangedQuery(ibs_query, users, admin_obj,
                                        changed_attr_updaters)
     ibs_query = self.__getDeletedQuery(ibs_query, users, admin_obj,
                                        deleted_attr_updaters)
     return (ibs_query, changed_attr_updaters, deleted_attr_updaters, users)