Example #1
0
        public void GrantPermission(objectRbac mObject, operation mOperation, role mRole)
        {
            role TempRole = Mapping(mRole);

            if (TempRole == null)
            {
                throw new Exception("Role Does not exist in system.");
            }

            objectRbac tempObject    = Mapping(mObject);
            operation  tempOperation = Mapping(mOperation);

            //Grant permission
            string hsql = "from permission per where per.ObjectRBAC = :ObjectRBAC AND  per.Operation = :Operation ";

            List <permission> _lst           = PermissionSrv.GetbyHQuery(hsql, new SQLParam("ObjectRBAC", tempObject), new SQLParam("ObjectRBAC", tempOperation));
            permission        TempPermission = (_lst == null || _lst.Count == 0) ? null : _lst[0];

            if (TempPermission == null)
            {
                TempPermission            = new permission();
                TempPermission.AppID      = App.AppID;
                TempPermission.name       = tempObject.name + ":" + tempOperation.name;
                TempPermission.ObjectRBAC = tempObject;
                TempPermission.Operation  = tempOperation;
                PermissionSrv.CreateNew(TempPermission);
                TempRole.Permissions.Add(TempPermission);
                RoleSrv.CommitChanges();
            }

            else
            {
                if (!TempRole.Permissions.Contains(TempPermission))
                {
                    TempRole.Permissions.Add(TempPermission);
                    RoleSrv.CommitChanges();
                }
            }
        }
Example #2
0
        public void UnInstallObject(string mObject)
        {
            if (_App == null)
            {
                return;
            }
            objectRbac tempObject = ObjectSrv.GetByName(mObject, _App.AppID);

            if (tempObject == null)
            {
                return;
            }
            string             HQL     = "from permission per where per.ObjectRBAC = :ObjectRBAC";
            IList <permission> PerList = PermissionSrv.GetbyHQuery(HQL, new SQLParam("ObjectRBAC", tempObject));

            foreach (permission per in PerList)
            {
                per.Roles.Clear();
                PermissionSrv.Delete(per);
            }
            ObjectSrv.Delete(tempObject);
            ObjectSrv.CommitChanges();
        }