(info CreateInfo, withDeleteDB bool)
| 84 | } |
| 85 | |
| 86 | func (r *Remote) CreateUser(info CreateInfo, withDeleteDB bool) error { |
| 87 | createSql := fmt.Sprintf("CREATE USER \"%s\" WITH PASSWORD '%s'", info.Username, info.Password) |
| 88 | if err := r.ExecSQL(createSql, info.Timeout); err != nil { |
| 89 | if strings.Contains(strings.ToLower(err.Error()), "already exists") { |
| 90 | return buserr.New("ErrUserIsExist") |
| 91 | } |
| 92 | if withDeleteDB { |
| 93 | _ = r.Delete(DeleteInfo{ |
| 94 | Name: info.Name, |
| 95 | Username: info.Username, |
| 96 | ForceDelete: true, |
| 97 | Timeout: 300}) |
| 98 | } |
| 99 | return err |
| 100 | } |
| 101 | if info.SuperUser { |
| 102 | if err := r.ChangePrivileges(Privileges{SuperUser: true, Username: info.Username, Timeout: info.Timeout}); err != nil { |
| 103 | if withDeleteDB { |
| 104 | _ = r.Delete(DeleteInfo{ |
| 105 | Name: info.Name, |
| 106 | Username: info.Username, |
| 107 | ForceDelete: true, |
| 108 | Timeout: 300}) |
| 109 | } |
| 110 | return err |
| 111 | } |
| 112 | } |
| 113 | grantSql := fmt.Sprintf("GRANT ALL PRIVILEGES ON DATABASE \"%s\" TO \"%s\"", info.Name, info.Username) |
| 114 | if err := r.ExecSQL(grantSql, info.Timeout); err != nil { |
| 115 | if withDeleteDB { |
| 116 | _ = r.Delete(DeleteInfo{ |
| 117 | Name: info.Name, |
| 118 | Username: info.Username, |
| 119 | ForceDelete: true, |
| 120 | Timeout: 300}) |
| 121 | } |
| 122 | return err |
| 123 | } |
| 124 | |
| 125 | return nil |
| 126 | } |
| 127 | |
| 128 | func (r *Remote) Delete(info DeleteInfo) error { |
| 129 | if len(info.Name) != 0 { |
no test coverage detected