Example #1
0
        private void btn_addPermission_Save_Click(object sender, EventArgs e)
        {
            Program.ExitCode status;

            if (tb_Name.Text != "")
            {
                Permission p = new Permission
                {
                    Name = tb_Name.Text,
                    Policy_Id = Convert.ToInt32(cb_Policy.SelectedValue)
                };

                status = RBACManager.AddPermission(p,
                                    mainForm.db.Action.Single(a => a.Id == Convert.ToInt32(cb_Action.SelectedValue)),
                                    mainForm.db.Object.Single(o => o.Id == Convert.ToInt32(cb_Object.SelectedValue)),
                                    mainForm.db);
                if (status == Program.ExitCode.Error)
                {
                    MessageBox.Show(this,
                                        "Error while Submiting results in the DataBase!",
                                        "Error",
                                        MessageBoxButtons.OK,
                                        MessageBoxIcon.Error);
                    return;
                }
                if (status == Program.ExitCode.Success)
                {
                    MessageBox.Show(this,
                                    "Permission добавлен!",
                                    "Success",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Information);
                    this.Close();
                    return;
                }
                if (status == Program.ExitCode.ElementExists)
                {
                    MessageBox.Show(this,
                                    "Permission с такими параметрами уже существует!",
                                    "Warning",
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Warning);
                    return;
                }
            }
            else
            {
                MessageBox.Show(this,
                            "Вы не заполнили поле'Name'!",
                            "Error",
                            MessageBoxButtons.OK,
                            MessageBoxIcon.Error);
            }
        }
Example #2
0
 partial void DeletePermission(Permission instance);
Example #3
0
 partial void UpdatePermission(Permission instance);
Example #4
0
 partial void InsertPermission(Permission instance);
Example #5
0
		private void detach_Permission(Permission entity)
		{
			this.SendPropertyChanging();
			entity.Policy = null;
		}
Example #6
0
		private void attach_Permission(Permission entity)
		{
			this.SendPropertyChanging();
			entity.Policy = this;
		}
Example #7
0
 public static Program.ExitCode RmPermission(Permission p_in, rbacLINQ2SQLDataContext db, bool submitChanges = true)
 {
     var query_p = from p in db.Permission
                     where p.Name == p_in.Name && p.Policy_Id == p_in.Policy_Id
                     select p;
     if (query_p.Count() == 0)
     {
         return Program.ExitCode.ElementDoesNotExists;
     }
     db.PermissionPerObject.DeleteAllOnSubmit(query_p.First().PermissionPerObject);
     db.RolePermission.DeleteAllOnSubmit(query_p.First().RolePermission);
     db.Permission.DeleteOnSubmit(query_p.First());
     try
     {
         if (submitChanges)
             db.SubmitChanges();
         return Program.ExitCode.Success;
     }
     catch (Exception exc) { return Program.ExitCode.Error; }
 }
Example #8
0
        public static void AddPermission_noTryCatch(Permission p_in, Action a_in, Object o_in, rbacLINQ2SQLDataContext db)
        {
            bool ppo_exists = false;
            bool p_exists = false;

            var query_p = from p in db.Permission
                          where p.Name == p_in.Name && p.Policy_Id == p_in.Policy_Id
                          select p;
            if (query_p.Count() != 0)
                p_exists = true;
            // if does not exist in Permission_Table, add:
            if (!p_exists)
            {
                db.Permission.InsertOnSubmit(p_in);
                db.SubmitChanges();
                System.Diagnostics.Debug.WriteLine("Added Permission {0}:", p_in.Name);
            }
            else
            {
                System.Diagnostics.Debug.WriteLine("Existing Permission {0}:", p_in.Name);
            }
            Permission perm = db.Permission.Single(p => p.Name == p_in.Name && p.Policy_Id == p_in.Policy_Id);

            var query_ppo = from ppo in db.PermissionPerObject
                            where ppo.Action_Id == a_in.Id && ppo.Object_Id == o_in.Id && ppo.Permission_Id == perm.Id
                            select ppo;
            if (query_ppo.Count() != 0)
            {
                ppo_exists = true;
                System.Diagnostics.Debug.WriteLine("Existing PermissionPerObject {0}->({1},{2}):",p_in.Name,a_in.Name,o_in.Name);
            }
            // if does not exist in PermissionPerObject_Table, add:
            else
            {
                db.PermissionPerObject.InsertOnSubmit(new PermissionPerObject
                {
                    Action_Id = a_in.Id,
                    Object_Id = o_in.Id,
                    Permission_Id = perm.Id
                });
                db.SubmitChanges();
                System.Diagnostics.Debug.WriteLine("Added PermissionPerObject {0}->({1},{2}):", p_in.Name, a_in.Name, o_in.Name);
            }
        }
Example #9
0
        public static Program.ExitCode AddPermission(Permission p_in, Action a_in, Object o_in, rbacLINQ2SQLDataContext db)
        {
            bool ppo_exists = false;
            bool p_exists = false;

            var query_p = from p in db.Permission
                          where p.Name == p_in.Name && p.Policy_Id == p_in.Policy_Id
                          select p;
            if (query_p.Count() != 0)
                p_exists = true;
            // if does not exist in Permission_Table, add:
            if (!p_exists)
            {
                db.Permission.InsertOnSubmit(p_in);
                try { db.SubmitChanges(); }
                catch (Exception exc) { return Program.ExitCode.Error; }
            }
            Permission perm = db.Permission.Single(p => p.Name == p_in.Name && p.Policy_Id == p_in.Policy_Id);

            var query_ppo = from ppo in db.PermissionPerObject
                            where ppo.Action_Id == a_in.Id && ppo.Object_Id == o_in.Id && ppo.Permission_Id == perm.Id
                            select ppo;
            if (query_ppo.Count() != 0)
                ppo_exists = true;

            if (ppo_exists)
            {
                return Program.ExitCode.ElementExists;
            }
            // if does not exist in PermissionPerObject_Table, add:
            else
            {

                db.PermissionPerObject.InsertOnSubmit(new PermissionPerObject{
                                                            Action_Id = a_in.Id,
                                                            Object_Id = o_in.Id,
                                                            Permission_Id = perm.Id});
                try
                {
                    db.SubmitChanges();
                    return Program.ExitCode.Success;
                }
                catch (Exception exc) { return Program.ExitCode.Error; }
            }
        }
Example #10
0
 private static void XMLWritePermissionPerObject(Permission permission, XmlWriter xmlWriter)
 {
     xmlWriter.WriteStartElement("PermissionsPerObject");
     foreach (PermissionPerObject ppo in permission.PermissionPerObject)
     {
         xmlWriter.WriteStartElement("PpO");
         xmlWriter.WriteAttributeString("action", ppo.Action.Name);
         xmlWriter.WriteAttributeString("object", ppo.Object.Name);
         xmlWriter.WriteEndElement();
     }
     xmlWriter.WriteEndElement();
 }
Example #11
0
 private static void XMLWritePermission(Permission permission, XmlWriter xmlWriter)
 {
     xmlWriter.WriteStartElement("Permission");
     xmlWriter.WriteAttributeString("name", permission.Name);
     XMLWritePermissionPerObject(permission, xmlWriter);
     xmlWriter.WriteEndElement();
 }
Example #12
0
        private static bool XMLReadPermission(XmlNode permissionNode, int pid, rbacLINQ2SQLDataContext db)
        {
            Permission perm;
            Action act;
            Object obj;

            perm = new Permission() { Name = permissionNode.Attributes["name"].Value, Policy_Id = pid };

            // If there's no single PermissionPerObject block, error:
            if (permissionNode.ChildNodes.Count != 1)
            {
                return false;
            }

            XmlNode ppoBlock = permissionNode.ChildNodes.Item(0);
            // If there's no PpO entry - error;
            // There may not be a permission without any (Action,Object) pair:
            if (ppoBlock.ChildNodes.Count == 0)
            {
                return false;
            }
            foreach (XmlNode ppoNode in ppoBlock.ChildNodes)
            {
                act = db.Action.Single(x => x.Name == ppoNode.Attributes["action"].Value);
                obj = db.Object.Single(x => x.Name == ppoNode.Attributes["object"].Value);
                RBACManager.AddPermission_noTryCatch(perm, act, obj, db);
            }

            return true;
        }