MCPcopy Create free account
hub / github.com/1Panel-dev/1Panel / CreateUser

Method CreateUser

agent/utils/postgresql/client/remote.go:86–126  ·  view source on GitHub ↗
(info CreateInfo, withDeleteDB bool)

Source from the content-addressed store, hash-verified

84}
85
86func (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
128func (r *Remote) Delete(info DeleteInfo) error {
129 if len(info.Name) != 0 {

Callers 1

CreateMethod · 0.95

Calls 4

ExecSQLMethod · 0.95
DeleteMethod · 0.95
ChangePrivilegesMethod · 0.95
ErrorMethod · 0.45

Tested by

no test coverage detected