示例#1
0
 /**
  * Add a new role
  *
  * @param array $roleInfo
  *      string name
  * @return integer|string
  */
 public function addRole(array $roleInfo)
 {
     $insertId = 0;
     try {
         $this->adapter->getDriver()->getConnection()->beginTransaction();
         $insert = $this->insert()->into('acl_role')->values(array_merge($roleInfo, ['type' => self::ROLE_TYPE_CUSTOM]));
         $statement = $this->prepareStatementForSqlObject($insert);
         $statement->execute();
         $insertId = $this->adapter->getDriver()->getLastGeneratedValue();
         $this->adapter->getDriver()->getConnection()->commit();
     } catch (Exception $e) {
         $this->adapter->getDriver()->getConnection()->rollback();
         ApplicationErrorLogger::log($e);
         return $e->getMessage();
     }
     // fire the add acl role event
     AclEvent::fireAddAclRoleEvent($insertId);
     return $insertId;
 }