示例#1
0
 /// <summary>
 ///     Add A Custom User
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnAddCustomRole_Click(object sender, EventArgs e)
 {
     var r = new Role();
     if (RuntimeMongoDbContext.GetCurrentDataBase() != null)
     {
         r.Database = RuntimeMongoDbContext.GetCurrentDataBase().Name;
     }
     else
     {
         r.Database = ConstMgr.DatabaseNameAdmin;
     }
     r.Rolename = txtRolename.Text;
     r.Privileges = new Role.Privilege[_privilegeList.Count];
     for (var i = 0; i < _privilegeList.Count; i++)
     {
         r.Privileges[i] = _privilegeList[i];
     }
     r.Roles = new Role.GrantRole[_roleList.Count];
     for (var i = 0; i < _roleList.Count; i++)
     {
         r.Roles[i] = _roleList[i];
     }
     //这个时候可能没有GetCurrentDataBase,如果是Admin
     var result = DataBaseCommand.createRole(RuntimeMongoDbContext.GetCurrentServer().GetDatabase(r.Database), r);
     if (result.Ok)
     {
         MyMessageBox.ShowEasyMessage("Succeed", "Add Role OK");
     }
     else
     {
         MyMessageBox.ShowMessage("Error", "Add Role Error", result.Response.ToString());
     }
 }
示例#2
0
 /// <summary>
 ///     Add A Custom User
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnAddRole_Click(object sender, EventArgs e)
 {
     var r = new Role();
     if (RuntimeMongoDbContext.GetCurrentDataBase() != null)
     {
         r.Database = RuntimeMongoDbContext.GetCurrentDataBase().Name;
     }
     else
     {
         r.Database = ConstMgr.DatabaseNameAdmin;
     }
     r.Rolename = txtRolename.Text;
     r.Privileges = new Role.Privilege[_privilegeList.Count];
     for (var i = 0; i < _privilegeList.Count; i++)
     {
         r.Privileges[i] = _privilegeList[i];
     }
     r.Roles = new Role.GrantRole[_roleList.Count];
     for (var i = 0; i < _roleList.Count; i++)
     {
         r.Roles[i] = _roleList[i];
     }
     var result = Role.AddRole(RuntimeMongoDbContext.GetCurrentDataBase(), r);
     if (result.IsBsonDocument)
     {
         MyMessageBox.ShowMessage("Error", "Add Role Error", ViewHelper.ConvertToString(result));
     }
     else
     {
         MyMessageBox.ShowEasyMessage("Succeed", "Add Role OK");
     }
 }
示例#3
0
 /// <summary>
 ///     添加一个用户自定义角色
 /// </summary>
 public static BsonValue AddRole(MongoDatabase mongoDb, Role role)
 {
     var roleCommand = string.Empty;
     var doc = new EvalArgs();
     roleCommand = "db.createRole(" + Environment.NewLine;
     roleCommand += "{" + Environment.NewLine;
     roleCommand += "    role: '" + role.Rolename + "'," + Environment.NewLine;
     //Roles
     roleCommand += "    roles:" + Environment.NewLine;
     roleCommand += "    [";
     for (var i = 0; i < role.Roles.Length; i++)
     {
         var singleroles = role.Roles[i];
         roleCommand += "{ role: '" + singleroles.MRole + "', db: '" + singleroles.Db + "' }" +
                        (i == role.Roles.Length - 1 ? "" : ",") + Environment.NewLine;
     }
     roleCommand += "     ],";
     //privileges
     roleCommand += "    privileges:" + Environment.NewLine;
     roleCommand += "    [";
     for (var i = 0; i < role.Privileges.Length; i++)
     {
         var singleprivileges = role.Privileges[i];
         roleCommand += "{" + singleprivileges.Resource.GetJsCode() + "," +
                        MongoDbAction.GetActionListJs(singleprivileges.Actions) + "}" +
                        (i == role.Privileges.Length - 1 ? "" : ",") + Environment.NewLine;
     }
     roleCommand += "     ],";
     //
     roleCommand += "}" + Environment.NewLine;
     roleCommand += ")";
     doc.Code = roleCommand;
     BsonValue result;
     try
     {
         result = mongoDb.Eval(doc);
     }
     catch (MongoCommandException ex)
     {
         result = ex.Result;
     }
     return result;
 }
示例#4
0
 /// <summary>
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnAddRoleToDB_Click(object sender, EventArgs e)
 {
     var r = new Role();
     r.rolename = "tester" + DateTime.Now.ToString("yyyyMMddHHmmss");
     r.database = "admin";
     r.roles = new Role.GrantRole[1];
     r.roles[0] = new Role.GrantRole {db = "admin", mRole = "read"};
     r.privileges = new Role.privilege[1];
     r.privileges[0] = new Role.privilege
     {
         actions =
             new MongoDBAction.ActionType[1]
             {MongoDBAction.ActionType.DatabaseManagementActions_createCollection},
         resource =
             new Resource {CollectionName = "", DataBaseName = "admin", Type = Resource.ResourceType.DataBase}
     };
     var doc = Role.AddRole(SystemManager.GetCurrentServer().GetDatabase("admin"), r);
     if (doc.IsBsonDocument)
         UIHelper.FillDataToTreeView("myClusterwideAdmin", treeViewColumns1, doc.AsBsonDocument);
 }
示例#5
0
 /// <summary>
 ///     添加自定义角色
 /// </summary>
 public static CommandResult createRole(MongoDatabase mongoDb, Role role)
 {
     var mongoCmd = new CommandDocument("createRole", role.Rolename);
     var privileges = new BsonArray();
     privileges.AddRange(role.Privileges.Select(x => x.AsBsonDocument()));
     mongoCmd.Add("privileges", privileges);
     var roles = new BsonArray();
     roles.AddRange(role.Roles.Select(x => x.AsBsonValue()));
     mongoCmd.Add("roles", roles);
     return ExecuteMongoDBCommand(mongoCmd, mongoDb);
 }